본 게시물은 개인적인 의견으로 작성되었으니 절대적인 정보가 아닐 수 있습니다. 참고만 하시고 궁금한 사항이 있으시면 연락주세요.

티스토리 뷰

분산된 가용성그룹이 복잡하게 느껴질 것이다.

어찌 보면 단순하지만 복잡하다.

   

그럼 분산된 가용성그룹의 장애조치는 어떻게 할까?

주 가용성그룹(주 클러스터 환경)이 장애가 발생될 경우에 보조 가용성그룹(보조 클러스터환경)으로 장애조치를 해야 한다.

   

장애조치 하는 방법은 간단하다.

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;

   

   

간단하다.

개체탐색기에서 바뀐 것을 확인 가능하다.

   

   

상세한 시나리오들은 추후에 포스팅할 예정이다.


키워드 : 분산가용성그룹

댓글
댓글쓰기 폼
1 ··· 15 16 17 18 19 20 21 22 23 ··· 325