2.4.2 强制故障转移

强制故障转移严格限制用于灾难恢复。如果由于主数据中心的灾难事件导致群集无法响应,你不能使用群集管理工具与群集交互,你可能需要强制故障转移,以绕过外部群集管理器。


验证AG资源不再被群集管理

在目标群集节点上设置资源为非托管模式。该命令让资源代理停止资源监控和管理。

sudo pcs resource unmanage <resourceName>

如果尝试设置资源为非托管模式失败,删除该资源。

sudo pcs resource delete <resourceName>

注意:当你删除一个资源,也删除了所有的相关约束。


在承载辅助副本的 SQL Server 实例中,设置会话上下文变量external_cluster

EXEC sp_set_session_context @key = N'external_cluster', @value = N'yes';


连接到托管目标次要副本的SQL Server实例,使用Transact SQL执行AG故障转移

ALTER AVAILABILITY GROUP <MyAg> FORCE_FAILOVER_ALLOW_DATA_LOSS;


在强制故障转移后,在重启群集资源监控和管理或重建AG资源之前将AG带入健康状态。参考:强制故障转移后的重要任务


或者重启群集资源监控和管理

运行如下命令来重启群集资源监控和管理:

sudo pcs resource manage <resourceName>
sudo pcs resource cleanup <resourceName>

如果删除了群集资源,重新创建它。

参考:创建AG资源


重要:不要在灾难恢复演练中使用上述步骤,因为它们可能会丢失数据。而是更改异步副本为同步,并遵循常规的手动故障转移指南。