更改可用性副本的可用性模式 (SQL Server)

本主题介绍如何使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 更改 SQL Server 2014 年 AlwaysOn 可用性组中可用性副本 (replica) 的可用性模式。 可用性模式是一个副本属性,用于控制以异步还是同步方式提交副本。 异步提交模式可使性能最大化,但要牺牲高可用性;它仅支持强制手动故障转移(有可能丢失数据),该故障转移一般称为强制故障转移同步提交模式 更多地强调高可用性而不是性能,并且一旦同步次要副本,即支持手动故障转移(也可以支持自动故障转移)。

开始之前

先决条件

  • 您必须连接到承载主副本的服务器实例。

安全性

权限

对可用性组要求 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 }

    } )

    其中,group_name是可用性组的名称,server_name是承载要修改副本 (replica) 的服务器实例的名称。

    注意

    仅在你还指定了 AVAILABILITY_MODE = SYNCHRONOUS_COMMIT 的情况下,才支持 FAILOVER_MODE = AUTOMATIC。

    AccountsAG 可用性组的主副本上输入的以下示例,针对 INSTANCE09 服务器实例承载的副本,将可用性模式和故障转移模式分别更改为同步提交和自动故障转移。

    
    ALTER AVAILABILITY GROUP AccountsAG MODIFY REPLICA ON 'INSTANCE09'  
       WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);  
    ALTER AVAILABILITY GROUP AccountsAG MODIFY REPLICA ON 'INSTANCE09'  
       WITH (FAILOVER_MODE = AUTOMATIC);  
    

使用 PowerShell

更改可用性组的可用性模式

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

  2. 使用 Set-SqlAvailabilityReplica cmdlet 和 AvailabilityMode 参数,以及可选的 FailoverMode 参数。

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

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

    注意

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

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

另请参阅

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