복제 재구축

CUBRID HA 환경에서의 복제 재구축은 다중 슬레이브 노드 구성 중 다중 장애 상황이나 일반적인 경우의 오류 상황으로 인해 CUBRID HA 그룹 내의 데이터가 동일하지 않은 경우에 필요하다. CUBRID HA 환경에서의 복제 재구축은 스크립트를 통해 제공된다. cubrid applyinfo 유틸리티는 복제 진행 상태를 확인할 수는 있지만 이를 통해 복제 불일치 여부를 직접 판단할 수는 없으므로, 복제 불일치 여부를 판단하려면 마스터 노드와 슬레이브 노드의 데이터를 직접 확인해야 한다.

복제 재구축을 위해서는 슬레이브 노드와 마스터 노드, 레플리카 노드에서 아래 환경이 동일해야 한다.

ha_make_slavedb.sh 스크립트

ha_make_slavedb.sh 스크립트를 이용하여 복제 재구축을 수행할 수 있다. 이 스크립트는 $CUBRID/share/script/ha에 위치하며, 복제 재구축에 들어가기 전에 다음의 항목을 사용자 환경에 맞게 설정해야 한다. 이 스크립트는 2008 R2.2 Patch 9 버전부터 지원하지만 2008 R4.1 Patch 2 미만 버전과는 일부 설정 방법이 다르며, 이 문서에서는 2008 R4.1 Patch 2 이상 버전에서의 설정 방법에 대해 설명한다.

다음은 필요에 따라 선택적으로 설정하는 항목이다.

스크립트의 설정이 끝나면 ha_make_slavedb.sh 스크립트를 복제 재구축할 슬레이브 노드에서 수행한다. 스크립트 수행 시 여러 단계에 의해 복제 재구축이 이루어지며 각 단계의 진행을 위해서 사용자가 적절한 값을 입력해야 한다. 다음은 입력할 수 있는 값에 대한 설명이다.

제약 사항
주의 사항

복제 재구축을 수행하려면 원본 노드에 있는 데이터베이스 볼륨의 물리적 이미지를 복제 대상 노드의 데이터베이스에 복사해야 한다. 그런데 cubrid unloaddb는 논리적인 이미지를 백업하므로 cubrid unloaddbcubrid loaddb를 이용해서는 복제 재구축을 할 수 없다. cubrid backupdb는 물리적 이미지를 백업하므로 이를 이용한 복제 재구축이 가능하며, ha_make_slavedb.sh 스크립트는 cubrid backupdb를 이용하여 복제 재구축을 수행한다.

설정 예

위와 같이 HA가 구성되어 있는 서버에서 슬레이브 노드(slave)에 문제가 발생하여 레플리카 노드를 이용해서 슬레이브 노드를 재구축하려면, 슬레이브 노드에 있는 ha_make_slavedb.shtarget_host 값을 replica1 또는 replica2로 변경해야 한다. 만약 REPL_LOG_HOME의 값이 $CUBRID_DATABASES가 아니라면 repl_log_home의 값도 설정한다.

[slave]$ cd $CUBRID/share/script/ha

[slave]$ vi ha_make_slavedb.sh

target_host="replica2"

 

# if REPL_LOG_HOME != $CUBRID_DATABASES then

repl_log_home=$USER_SPECIFIC_REPL_LOG_HOME

변경 사항을 저장한 후 스크립트를 실행한다.

[slave]$ ./ha_make_slavedb.sh