可用性组故障转移
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 仅在主副本不可达或在异步副本上使用,可能导致数据丢失;同步状态不健康时务必格外小心。