I have a question about rolling back from an Availability Group upgrade. I have searched the Internet and consulted the all-knowing LLM / AI / bot / clankers.
I thought I would see if someone else has experience before request new nodes and go through the pain of testing this.
The LLMs tell me it can’t be done, but in the same response they say two or three things I know are wrong. When prodded, it provides links and says the answer is “implied”.
. The Internet has lots of instructions on how to upgrade, but no good articles on how to go back beyond backup and restore. (Which may be my answer
)
My plan
- I have a two node AG on Windows 2016 and SQL Server 2016
- I add two new nodes on Windows 2019 and SQL Server 2019
- I failover to one of the SQL Server 2019 thus upgrading the databases
So far so good. Until something goes horribly wrong and I have to go back. I assume the data in the new 2019 version of the databases cannot be brought back except by manual export/import.
I want to know about the state of the databases on SQL 2016 nodes. Could I
- Drop all databases from the AG
- Move the AG primary back to one of the SQL Server 2016 nodes
- Restore each database WITH RECOVERY to make them readable and writeable. At this point, the databases should be available on the old node with the Listener name and IP.
- Evict the two new nodes from the AG and cluster and put these newly restored databases back in the AG.
The LLMs are telling me that this can’t happen because failing to the new upgraded AG node will send enough log information back to the old SQL Server 2016 node that the databases cannot be recovered. But they already told me things I know are wrong so I’m skeptical.
Does anyone have any first-hand experience testing this?