patternsqlMinor
Compatibility mode change does not reflect on secondaries
Viewed 0 times
reflectcompatibilitymodedoessecondariesnotchange
Problem
I was of belief that changing compatibility mode on primary database in database mirroring would make the change for mirror database.
But it proved to be wrong. I queried using
Am i using the incorrect fn here sys.databases?
Also if it does not change what does it mean, do i need to do failover/failback to reflect?
What if i had log shipping secondary database in read only as well where this change needs to reflect? Do i need to rebuild log shipping then?
Thanks
But it proved to be wrong. I queried using
sys.databases on Primary where i changed compatibility mode to 120 , however on its mirrored database compatibility level was still 100. Why?Am i using the incorrect fn here sys.databases?
Also if it does not change what does it mean, do i need to do failover/failback to reflect?
What if i had log shipping secondary database in read only as well where this change needs to reflect? Do i need to rebuild log shipping then?
Thanks
Solution
Below
is not propagated to secondaries in DB mirroring or AlwaysON since they ship log blocks vs transactions - (logshipping you take log backups and ship it to secondary server and restore them).
There is a reason why they should not change the DB compatibility level as you certify your application based on DB Compatibility level vs a particuliar version of sql server.
This is same as if you change the owner of database .. you have to change it on secondary when it becomes Primary.
how can i really get this changed without breaking LS or mirroring if possible.
You dont have to break mirroring or LS. You have to just failover and failback.
For logshipping, since it is physical log backup-copy-restore, once you restore the database and bring it online or readonly it will reflect the change. For mirroring, you can just failover and failback.
The point is to bring the db to read/write state and do alter database in AG or mirroring configuration.
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }is not propagated to secondaries in DB mirroring or AlwaysON since they ship log blocks vs transactions - (logshipping you take log backups and ship it to secondary server and restore them).
There is a reason why they should not change the DB compatibility level as you certify your application based on DB Compatibility level vs a particuliar version of sql server.
This is same as if you change the owner of database .. you have to change it on secondary when it becomes Primary.
how can i really get this changed without breaking LS or mirroring if possible.
You dont have to break mirroring or LS. You have to just failover and failback.
For logshipping, since it is physical log backup-copy-restore, once you restore the database and bring it online or readonly it will reflect the change. For mirroring, you can just failover and failback.
The point is to bring the db to read/write state and do alter database in AG or mirroring configuration.
Context
StackExchange Database Administrators Q#268085, answer score: 8
Revisions (0)
No revisions yet.