DBAtlas · 데이터베이스 운영 아틀라스

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에서만 사용하며 데이터 손실을 일으킬 수 있다. 동기화가 정상이 아니면 매우 주의한다.

DBAtlas에서 열기 →

관련 항목