Change the Failover Mode of an Availability Replica (SQL Server)
This topic describes how to change the failover mode of an availability replica in an AlwaysOn availability group in SQL Server 2012 by using SQL Server Management Studio, Transact-SQL, or PowerShell. The failover mode is a replica property that determines the failover mode for replicas that run under synchronous-commit availability mode. For more information, see Failover and Failover Modes (AlwaysOn Availability Groups) and Availability Modes (AlwaysOn Availability Groups).
Before you begin:
Prerequisites and Restrictions
Security
To change the availability mode of an availability replica, using:
SQL Server Management Studio
Transact-SQL
PowerShell
Before You Begin
Prerequisites and Restrictions
This task is supported only on primary replicas. You must be connected to the server instance that hosts the primary replica.
SQL Server Failover Cluster Instances (FCIs) do not support automatic failover by availability groups, so any availability replica that is hosted by an FCI can only be configured for manual failover.
Security
Permissions
Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.
[Top]
Using SQL Server Management Studio
To change the failover mode of an availability replica
In Object Explorer, connect to the server instance that hosts the primary replica, and expand the server tree.
Expand the AlwaysOn High Availability node and the Availability Groups node.
Click the availability group whose replica you want to change.
Right-click the replica, and click Properties.
In the Availability Replica Properties dialog box, use the Failover mode drop list to change the failover mode of this replica.
[Top]
Using Transact-SQL
To change the failover mode of an availability replica
Connect to the server instance that hosts the primary replica.
Use the ALTER AVAILABILITY GROUP statement, as follows:
ALTER AVAILABILITY GROUP group_name MODIFY REPLICA ON 'server_name'
WITH ( {
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
| FAILOVER_MODE = { AUTOMATIC | MANUAL }
} )
where
group_name is the name of the availability group.
{ 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' }
Specifies the address of the instance of SQL Server that hosts the availability replica to be altered. The components of this address are as follows:
system_name
Is the NetBIOS name of the computer system on which a stand-alone server instance resides.FCI_network_name
Is the network name that is used to access a SQL Server failover cluster in which a target server instance is a SQL Server failover partner (an FCI).instance_name
Is the name of the instance of SQL Server that hosts the target availability replica. For a default server instance, instance_name is optional.
For more information about these parameters, see ALTER AVAILABILITY GROUP (Transact-SQL).
The following example, entered on the primary replica of the MyAG availability group, changes the failover mode to automatic failover on the availability replica that is located on the default server instance on a computer named COMPUTER01.
ALTER AVAILABILITY GROUP MyAG MODIFY REPLICA ON 'COMPUTER01' WITH (FAILOVER_MODE = AUTOMATIC);
[Top]
Using PowerShell
To change the failover mode of an availability replica
Change directory (cd) to the server instance that hosts the primary replica.
Use the Set-SqlAvailabilityReplica cmdlet with the FailoverMode parameter. When setting a replica to automatic failover, you might need to use the AvailabilityMode parameter to change the replica to synchronous-commit availability mode.
For example, the following command modifies the replica MyReplica in the availability group MyAg to use synchronous-commit availability mode and to support automatic failover.
Set-SqlAvailabilityReplica -AvailabilityMode "SynchronousCommit" -FailoverMode "Automatic" ` -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\Replicas\MyReplica
Note
To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL Server PowerShell environment. For more information, see Get Help SQL Server PowerShell.
To set up and use the SQL Server PowerShell provider
[Top]
See Also
Concepts
Overview of AlwaysOn Availability Groups (SQL Server)