티스토리 뷰
분산된 가용성그룹이 복잡하게 느껴질 것이다.
어찌 보면 단순하지만 복잡하다.
그럼 분산된 가용성그룹의 장애조치는 어떻게 할까?
주 가용성그룹(주 클러스터 환경)이 장애가 발생될 경우에 보조 가용성그룹(보조 클러스터환경)으로 장애조치를 해야 한다.
장애조치 하는 방법은 간단하다.
T-SQL만 지원하는것 같다.
/*
분산 가용성 그룹의 장애조치 하는 방법
*/
-- 1. 보조 가용성 그룹에 대해 가용성 모드를 동기 커밋으로 설정합니다.
-- 왜 ?? 생각해봐라.
ALTER AVAILABILITY GROUP [distributedag]
MODIFY
AVAILABILITY GROUP ON
'AG-Seeding' WITH
(
LISTENER_URL = 'tcp://AGSeedLsn:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = MANUAL
),
'AG2-Seeding' WITH
(
LISTENER_URL = 'tcp://AG2SeedLsn:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = MANUAL
);
-- 상태 점검
-- 분산 가용성 그룹의 상태가 SYNCHRONIZED으로 변경될 때까지 대기합니다.
-- 왜 ??? 생각해봐라
-- 기본 가용성 그룹의 주 복제본을 호스트하는 SQL Server에서 다음 쿼리를 실행합니다.
-- 보조 가용성그룹의 주 복제본에서 쿼리 수행한다.
SELECT ag.name
, drs.database_id
, drs.group_id
, drs.replica_id
, drs.synchronization_state_desc
, drs.end_of_log_lsn
FROM sys.dm_hadr_database_replica_states drs,
sys.availability_groups ag
WHERE drs.group_id = ag.group_id;
-- 주 가용성 그룹의 주 복제본에서 수행한다.
-- 기본 가용성 그룹의 주 복제본을 호스트하는 SQL Server에서 분산 가용성 그룹 역할을
-- SECONDARY로 설정합니다.
ALTER AVAILABILITY GROUP distributedag SET (ROLE = SECONDARY);
SELECT ag.name,
drs.database_id,
drs.group_id,
drs.replica_id,
drs.synchronization_state_desc,
drs.end_of_log_lsn
FROM sys.dm_hadr_database_replica_states drs, sys.availability_groups ag
WHERE drs.group_id = ag.group_id;
-- 주 가용성 그룹에서 보조 가용성 그룹으로 장애 조치(failover)합니다.
-- 보조 가용성 그룹의 주 복제본을 호스트하는 SQL Server에서 다음 명령을 실행합니다.
-- 몇초 기다려보자.
ALTER AVAILABILITY GROUP distributedag FORCE_FAILOVER_ALLOW_DATA_LOSS;
간단하다.
개체탐색기에서 바뀐 것을 확인 가능하다.
좀 더 상세한 시나리오들은 추후에 포스팅할 예정이다.
키워드 : 분산가용성그룹
'SQL AlwaysON AG' 카테고리의 다른 글
SQL Server 2016 가용성 그룹 - without DC 편 (1) | 2016.11.18 |
---|---|
SQL Server 가용성그룹 싱글 복제본 구성하기 (0) | 2016.11.16 |
SQL Server 2016 가용성 그룹-분산된 가용성그룹편 (0) | 2016.11.09 |
SQL Server 2016 가용성 그룹- 로드밸런싱 읽기 전용 라우팅 다양하게 구성하는 방법 (0) | 2016.10.27 |
SQL Server 2016 가용성 그룹- 보조복제본 로드밸런싱 기능 (0) | 2016.10.27 |
- Total
- Today
- Yesterday