DBAtlas · 数据库运维图谱

可用性组故障转移

SQL Server配置

命令

-- Run on the TARGET (secondary) REPLICA - planned, no data loss (synchronous):
ALTER AVAILABILITY GROUP [AG_Customer] FAILOVER;

-- Forced (asynchronous replica / primary unreachable, DATA LOSS risk):
-- ALTER AVAILABILITY GROUP [AG_Customer] FORCE_FAILOVER_ALLOW_DATA_LOSS;

-- Check status:
SELECT ag.name, ar.replica_server_name,
       rs.role_desc, rs.synchronization_health_desc, ar.availability_mode_desc
FROM   sys.availability_groups ag
  JOIN sys.availability_replicas ar ON ar.group_id = ag.group_id
  JOIN sys.dm_hadr_availability_replica_states rs ON rs.replica_id = ar.replica_id;

作用

将可用性组的主角色转移到另一个副本;向同步副本执行的计划内故障转移不会丢失数据。

适用场景

维护/打补丁时的角色转移,主节点故障时的故障转移。

注意

普通 FAILOVER 命令在将要接管的辅助副本上运行。FORCE_FAILOVER_ALLOW_DATA_LOSS 仅在主副本不可达或在异步副本上使用,可能导致数据丢失;同步状态不健康时务必格外小心。

在 DBAtlas 中打开 →

相关内容