Sql-server – Upgrading Microsoft SQL 2014 and Always On AG Configurations

availability-groupssql server 2014upgrade

I'm getting ready to perform an upgrade from SQL 2014 to 2017 on two servers that are configured for Always On. The concern on the upgrade is how to break Always On to stop replication and to keep any sort of systems from failing over during the upgrade.

Microsoft's documentation for upgrading says to

Remove automatic failover on all synchronous-commit replicas

But there's no mention of a best practice on how to do this. Microsoft's documentation talks about disabling it in the Server Configuration Manager, then bringing back on once the upgrade is done prior to starting on the second one. But I also see the documentation mention removing the secondary from the availability group.

It looks like the upgrade process is straightforward, but the Always On portion is the confusing side. Can anyone recommend a best practice on this that's worked for them while maintaining data integrity?

For reference, this is the link from Microsoft I've been working from for the upgrade.

Best Answer

What you're reading is referring to changing the failover mode of an availability group replica:

To change the failover mode of an availability replica

  1. In Object Explorer, connect to the server instance that hosts the primary replica, and expand the server tree.

  2. Expand the Always On High Availability node and the Availability Groups node.

  3. Click the availability group whose replica you want to change.

  4. Right-click the replica, and click Properties.

  5. In the Availability Replica Properties dialog box, use the Failover mode drop list to change the failover mode of this replica.

At this point you'll want to set the failover mode to manual. Voila!

I assume you're doing an in place upgrade by the nature of the question, so to answer your other concerns:

Removing the secondaries from the availability group would effectively do the same thing (can't fail over when there's nothing to fail over to...) but only changing the failover mode lets you keep more of the existing architecture in place without having to re-seed every replica all over again.

You also could disable the entire availability group feature in Configuration Manager, but I think that requires a restart of the service and requires you to completely setup availability groups from scratch.