Upgrade a SQL Server Failover Cluster Instance
SQL Server supports upgrading a SQL Server failover cluster to a new version of SQL Server, to a new SQL Server service pack or cumulative update, or when installing to a new Windows service pack or cumulative update separately on all failover cluster nodes, with downtime limited to a single manual failover (or two manual failovers if failing back to the original primary).
Upgrading the Windows operating system of a failover cluster is not supported for operating systems before Windows Server 2012 R2. To upgrade a cluster node running on Windows Server 2012 R2 or above, see Perform a rolling upgrade or update.
Support details are as follows:
SQL Server upgrade is supported both through the user interface and from the command prompt. You can run upgrade from the command prompt on each failover cluster node, or by using the SQL Server setup UI to upgrade each cluster node. For more information, see Upgrade a SQL Server Failover Cluster Instance (Setup) and Install SQL Server from the Command Prompt.
The following scenarios are not supported as part of a SQL Server upgrade:
You cannot upgrade from a stand-alone instance of SQL Server to a failover cluster.
You cannot add features to a failover cluster. For example, you cannot add the Database Engine to an existing Analysis Services-only failover cluster.
You cannot downgrade a failover cluster node to a stand-alone instance.
Changing the edition of the failover cluster is limited to certain scenarios. For more information, see Supported Version and Edition Upgrades.
During the failover cluster upgrade, downtime is limited to failover time and the time that is required for upgrade scripts to run. If you follow the failover cluster rolling upgrade process below and meet all prerequisites on all nodes before you begin the upgrade process, your downtime is minimal. Upgrading SQL Server when memory-optimized tables are in use will take some extra time. For more information, see Plan and Test the Database Engine Upgrade Plan.
Before you begin, review the following important information:
Supported Version and Edition Upgrades: Verify that you can upgrade to SQL Server 2017 from your version of the Windows operating system and version of SQL Server. For example, you cannot upgrade directly from a SQL Server 2005 failover clustering instance to SQL Server 2017 or upgrade a failover cluster running on Windows Server 2003.
Choose a Database Engine Upgrade Method: Select the appropriate upgrade method and steps based on your review of supported version and edition upgrades and also based on other components installed in your environment to upgrade components in the correct order.
Plan and Test the Database Engine Upgrade Plan: Review the release notes and known upgrade issues, the pre-upgrade checklist, and develop and test the upgrade plan.
Hardware and Software Requirements for Installing SQL Server: Review the software requirements for installing SQL Server 2017. If additional software is required, install it on each node before you begin the upgrade process to minimize any downtime.
Perform a rolling upgrade or update
To upgrade a SQL Server failover cluster to SQL Server 2017, use SQL Server setup to upgrade each failover cluster node, one at a time, starting with the passive nodes. As you upgrade each node, it is left out of the possible owners of the failover cluster. If there is an unexpected failover, the upgraded nodes do not participate in the failover until cluster resource group ownership is moved to an upgraded node by SQL Server setup.
By default, SQL Server setup automatically determines when to fail over to an upgraded node. This depends on the total number of nodes in the failover cluster instance and the number of nodes that have already been upgraded. When half of the nodes or more have already been upgraded, SQL Server setup causes a failover to an upgraded node when you perform upgrade on the next node. Upon failover to an upgraded node, the cluster group is moved to an upgraded node. All the upgraded nodes are put in the possible owners list and all the nodes that are not yet upgraded are removed from the possible owners list. As you upgrade each remaining node, it is added to the possible owners of the failover cluster.
This process results in downtime limited to one failover time and database upgrade script execution time during the whole failover cluster upgrade.
To control the failover behavior of cluster nodes during the upgrade process, run the upgrade operation at the command prompt and use the /FAILOVERCLUSTERROLLOWNERSHIP parameter. For more information, see Install SQL Server from the Command Prompt.