更改可用性副本的故障转移模式 (SQL Server)

本主题介绍如何使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 更改 SQL Server 2014 中 AlwaysOn 可用性组中可用性副本 (replica) 的故障转移模式。 故障转移模式是一个副本属性,用于确定在同步提交可用性模式下运行的副本的故障转移模式。 有关详细信息,请参阅 故障转移和故障转移模式 (AlwaysOn 可用性组) 可用性模式 (AlwaysOn 可用性组)

开始之前

先决条件和限制

  • 只有主副本支持该任务。 您必须连接到承载主副本的服务器实例。

  • SQL Server 故障转移群集实例 (FCI) 不支持通过可用性组来自动进行故障转移,因此,只能为手动故障转移配置任何由 FCI 承载的可用性副本。

安全性

权限

对可用性组要求 ALTER AVAILABILITY GROUP 权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。

使用 SQL Server Management Studio

更改可用性副本的故障转移模式

  1. 在对象资源管理器中,连接到承载主副本的服务器实例,然后展开服务器树。

  2. 依次展开 “AlwaysOn 高可用性” 节点和 “可用性组” 节点。

  3. 单击要更改其副本的可用性组。

  4. 右键单击该副本,然后单击“属性”。

  5. “可用性副本属性” 对话框中,使用 “故障转移模式” 下拉列表更改此副本的故障转移模式。

“使用 Transact-SQL”

更改可用性副本的故障转移模式

  1. 连接到承载主副本的服务器实例。

  2. 按如下所示使用 ALTER AVAILABILITY GROUP 语句:

    ALTER AVAILABILITY GROUP group_name MODIFY REPLICA ON 'server_name'

    WITH ( {

    AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }

    | FAILOVER_MODE = { AUTOMATIC | MANUAL }

    } )

    where

    • 其中,group_name 是可用性组的名称。

    • { 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' }

      指定要更改的可用性副本 (replica) SQL Server实例的地址。 此地址由以下部分组成:

      system_name
      为独立服务器实例所在的计算机系统的 NetBIOS 名称。

      FCI_network_name
      用于访问SQL Server故障转移群集的网络名称,其中目标服务器实例是 FCI) SQL Server故障转移 (伙伴。

      instance_name
      承载目标可用性副本 (replica) 的SQL Server实例的名称。 对于默认服务器实例, instance_name 是可选的。

    有关这些参数的详细信息,请参阅 ALTER AVAILABILITY GROUP (Transact-SQL)

    以下示例(在 MyAG 可用性组的主要副本上输入)在可用性副本上(位于名为 COMPUTER01的计算机的默认服务器实例上)将故障转移模式更改为自动故障转移。

    ALTER AVAILABILITY GROUP MyAG MODIFY REPLICA ON 'COMPUTER01' WITH  
       (FAILOVER_MODE = AUTOMATIC);  
    

使用 PowerShell

更改可用性副本的故障转移模式

  1. 将目录 (cd) 更改为承载主副本的服务器实例。

  2. Set-SqlAvailabilityReplica cmdlet 与 FailoverMode 参数一起使用。 在将某一副本设置为自动故障转移时,您可能需要使用 AvailabilityMode 参数将该副本更改为同步提交可用性模式。

    例如,以下命令将修改可用性组 MyReplica 中的副本 MyAg 以使用同步提交可用性模式和支持自动故障转移。

    Set-SqlAvailabilityReplica -AvailabilityMode "SynchronousCommit" -FailoverMode "Automatic" `
     -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\Replicas\MyReplica  
    

    注意

    若要查看 cmdlet 的语法,请在 SQL Server PowerShell 环境中使用 Get-Help cmdlet。 有关详细信息,请参阅 Get Help SQL Server PowerShell

若要设置和使用 SQL Server PowerShell 提供程序,请参阅 SQL Server PowerShell 提供程序

另请参阅

AlwaysOn 可用性组概述 (SQL Server)
可用性模式(AlwaysOn 可用性组)
故障转移和故障转移模式(AlwaysOn 可用性组)