Availability Group 페일오버
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;하는 일
Availability Group의 primary 역할을 다른 replica로 옮긴다. 동기 replica로의 계획된 페일오버는 데이터 손실 없이 이루어진다.
사용 시점
유지보수/패치를 위한 역할 이전, primary 노드 장애 시 페일오버.
주의
일반 FAILOVER 명령은 역할을 넘겨받을 SECONDARY replica에서 실행한다. FORCE_FAILOVER_ALLOW_DATA_LOSS는 primary에 접근할 수 없거나 비동기 replica에서만 사용하며 데이터 손실을 일으킬 수 있다. 동기화가 정상이 아니면 매우 주의한다.