执行可用性组的计划手动故障转移 (SQL Server)

本主题介绍如何在 SQL Server 2014 (中使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 在 AlwaysOn 可用性组上执行计划的手动故障转移) ,而不会丢失数据。 可用性组在可用性副本级别进行故障转移。 与任何Always On可用性组故障转移一样,计划的手动故障转移会将辅助副本 (replica) 转换为主角色,同时将以前的主副本 (replica) 转换为辅助角色。

仅当主副本和目标辅助副本在同步提交模式下运行且当前同步时,才支持计划的手动故障转移,这种故障转移保留加入到目标辅助副本上的可用性组的辅助数据库中的所有数据。 一旦以前的主副本转换为辅助角色,其数据库将变成辅助数据库,并开始与新的主数据库进行同步。 在将其全部转换为 SYNCHRONIZED 状态之后,新的辅助副本将变成适于充当将来计划的手动故障转移的目标。

注意

如果辅助副本和主副本都配置为自动故障转移模式,则一旦辅助副本同步,该副本还可以充当自动故障转移的目标。 有关详细信息,请参阅 ) (AlwaysOn 可用性组的可用性模式

开始之前

限制和局限

  • 故障转移命令将在目标辅助副本接受它之后立即返回。 但是,在可用性组完成故障转移之后,数据库恢复操作将以异步方式执行。

  • 故障转移时,不维护可用性组中数据库间的跨数据库一致性。

    注意

    Always On可用性组不支持跨数据库事务和分布式事务。 有关详细信息,请参阅数据库镜像或 AlwaysOn 可用性组不支持跨数据库事务 (SQL Server)

先决条件和限制

  • 目标辅助副本和主副本必须同时在同步提交可用性模式下运行。

  • 目标辅助副本当前必须与主副本同步。 这要求此辅助副本上的所有辅助数据库必须已加入到可用性组,并与其对应的主数据库同步(即本地辅助数据库必须为 SYNCHRONIZED)。

    提示

    若要确定次要副本的故障转移就绪状态,请查询 sys.dm_hadr_database_cluster_states 动态管理视图中的 is_failover_ready 列,或查看 AlwaysOn 组面板的“故障转移就绪”列。

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

安全性

权限

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

使用 SQL Server Management Studio

对可用性组执行手动故障转移

  1. 在对象资源管理器中,连接到承载着需要进行故障转移的可用性组的一个辅助副本的服务器实例,然后展开服务器树。

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

  3. 右键单击要进行故障转移的可用性组,然后选择“故障转移” 命令。

  4. 这将启动“故障转移可用性组向导”。 有关详细信息,请参阅使用故障转移可用性组向导 (SQL Server Management Studio)

“使用 Transact-SQL”

对可用性组执行手动故障转移

  1. 连接到承载目标辅助副本的服务器实例。

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

    ALTER AVAILABILITY GROUP group_name FAILOVER

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

    以下示例手动将 MyAg 可用性组故障转移到连接的辅助副本 (replica) 。

    ALTER AVAILABILITY GROUP MyAg FAILOVER;  
    

使用 PowerShell

对可用性组执行手动故障转移

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

  2. 使用 Switch-SqlAvailabilityGroup cmdlet。

    注意

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

    以下示例使用指定路径手动将 MyAg 可用性组故障转移到辅助副本 (replica) 。

    Switch-SqlAvailabilityGroup -Path SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MyAg  
    

设置和使用 SQL Server PowerShell 提供程序

跟进:在对可用性组进行手动故障转移后

如果在可用性组的自动故障转移集外部进行了故障转移,请调整 WSFC 节点的仲裁投票以反映新的可用性组配置。 有关详细信息,请参阅 Windows Server 故障转移群集 (WSFC) with SQL Server

另请参阅

AlwaysOn 可用性组概述 (SQL Server)
故障转移和故障转移模式(AlwaysOn 可用性组)
对可用性组执行强制的手动故障转移 (SQL Server)