마스터 데이터베이스 교체(자동)

자동 교체 방식은 수동 교체 방식에 비해 좀 더 빠르고 편리하게 슬레이브 데이터베이스를 마스터 데이터베이스로 교체할 수 있는 방법이다. 교체 작업은 repl_check_syncrepl_change_master 유틸리티를 사용하여 진행한다. 슬레이브 데이터베이스의 복제 파라미터 옵션 중 for_recovery가 'Y'로 설정된 것만 자동 교체가 가능하다.

슬레이브 데이터베이스를 만들 때 모든 클래스의 소유권이 복제 사용자로 변경된다. 따라서 for_recovery에서도 권한 변경은 복제되지 않고, 사용자 추가 및 삭제 그리고 그룹 추가 및 삭제 등만 복제된다. 슬레이브 데이터베이스를 마스터 데이터베이스로 교체한 후 사용자별 권한은 DBA가 설정해야 한다. 트리거 역시 일괄적으로 슬레이브 데이터베이스에서 비활성화 되어 있으므로, 마스터 데이터베이스로 교체 후 DBA가 활성화시켜 주어야 한다.

슬레이브 데이터베이스의 동기화 상태 점검(repl_check_sync)
설명

마스터 데이터베이스에 장애가 발생하면 슬레이브 데이터베이스 중 하나를 마스터 데이터베이스로 교체해야 한다. 이 때 가장 우선 해야 할 일은 모든 슬레이브 데이터베이스 간의 동기화 상태와 동기화가 완료되었는지를 점검하는 것이다. repl_check_sync 유틸리티는 현재 구성된 슬레이브 데이터베이스의 동기화 상태를 점검한다.

구문

repl_check_sync dist_db_name.config [-p passwd]

예제

 192.168.2.100 5627
 192.168.2.200 5627

실행 결과는 슬레이브 데이터베이스별로 최종 반영된 로그 번호를 출력한다.

결과:

agent_ip  status   log number    last_updated_time

1.1.1.1    A          1234/110     15:30:30
1.1.1.2    A          1234/123     15:29:30
1.1.1.3    A          1234/123     15:28:30
1.1.1.4    A          1234/123     15:27:30
1.1.1.5    A          1234/123     15:26:30

출력 결과 중 status는 다음과 같은 정보로 구성된다.

A : Active(복제 진행 중)

F : First(처음 복제 시작)

I : Idle(휴식 - 복제 내용 없음)

슬레이브 데이터베이스를 마스터 데이터베이스로 교체(repl_change_master)
설명

repl_check_sync 유틸리티를 통해 최종 동기화 상태를 확인한 후 슬레이브 데이터베이스를 마스터 데이터베이스로 교체하기 위해서 트리거, 계정 정보 등을 원본과 동일하게 변경해야 한다. repl_change_master 유틸리티는 배포 데이터베이스의 마스터 데이터베이스에 대한 정보를 기준으로 지정된 슬레이브 데이터베이스를 마스터 데이터베이스로 변환시킨다.

구문

repl_change_master servers_info_file

예제

 distdb1 192.168.2.100 admin
 distdb2 192.168.2.200 admin