I am doing a rolling upgrade of my production SQL 2016 Servers to SQL 2019. I have availability groups. My current structure is 3 DR servers (secondaries), 3 HQ (on prem) secondaries and 3 HQ primaries. I have updated 2 of the DR servers as per the upgrade instructions that I've found. The instructions say the 2019 DBs should be in synchronized mode, but my 2019 DBs are in Synchronized/In Recovery mode. I hope the "In Recovery" part is because the DRs are now SQL 2019 and the rest of the AG is SQL 2016 and when I failover from the primaries to the secondaries, there won't be any trouble. Is this the case?

I am using this reference during the upgrade.


"Synchronized/In Recovery" means the database is synchronized with the primary and applying log records continuously from the primary. This keeps the database up-to-date against the source 2016 database. The database cannot be used while in this state, not even for read-only queries.

If you were to failover to a database in that state, the server would run recovery on the database once it has applied all the outstanding log records in the redo-queue. At that point the database comes online, and can be used by clients. However, once recovery runs, and the database engine upgrades the database to SQL Server 2019, it cannot be restored onto prior SQL Server versions - i.e. you couldn't fallback to a 2016 server.

Once you complete the upgrade of the last node to SQL Server 2019, database status should return to normal on the readonly secondaries.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.