마스터 데이터베이스의 백업 볼륨을 슬레이브 호스트로 복사한 후에 슬레이브 데이터베이스를 추가하기 위해 repl_make_slavedb 유틸리티를 수행한다.
repl_make_slavedb는 마스터 데이터베이스명, 슬레이브 데이터베이스명, 복제 계정의 사용자명 및 암호를 입력 받는다.
repl_make_slavedb master_db_name slave_db_name -u userid –p passwd
다음은 repl_make_slavedb를 수행하면 출력되는 도움말 화면이다.
#########################################################################
# #
# CUBRID 복제 환경 구성 : 슬레이브 DB 구성 #
# #
# 복제 환경을 구성하는 작업은 다음과 같은 순서로 진행되어야 합니다. #
# 1. 복제에이전트 구성 (repl_make_slavedb 스크립트 구동) #
# 2. 마스터 DB 전체 백업 (cubrid backupdb 유틸리티구동) #
# 3. 마스터 DB 백업본 복사 (마스터 DB 호스트->슬레이브 DB 호스트)#
# 4. 슬레이브 DB 구축 (repl_make_slavedb 스크립트 구동) #
# 5. 복제서버 구동 (cubrid repl_server 유틸리티 구동) #
# 6. 복제에이전트 구동 (cubrid repl_agent 유틸리티 구동) #
# #
# NOTE1: 슬레이브 DB 구성 전에 반드시 repl_make_distdb 스크립트를 #
# 이용하여 배포DB를 생성해야 합니다. #
# NOTE2: 마스터 DB에 대하여 전체 백업을 수행해야 합니다. #
# 백업받는 시점은 슬레이브 DB 구축시점 이전이면 언제든 #
# 상관없으나, 온라인백업을 하는 경우 가급적 슬레이브 DB를 #
# 구축하기 바로 전에 수행하시면 초기 복제에 소요되는 #
# 시간을 절약할 수 있습니다. #
# 필요한 백업 파일은 다음과 같습니다. #
# - master_db_name.bk_vinf #
# - master_db_name.bk0v??? #
# NOTE3: 현재 이 스크립트는 반드시 가져온 백업 파일이 있는 #
# 디렉토리에서 수행되어야 합니다. #
# #
# Ctrl-C 등으로 비정상적으로 스크립트를 중단하는 경우에는 #
# cubrid server stop/cubrid deletedb 등의 유틸리티를 이용하여 #
# 슬레이브 DB를 삭제한 후 다시 수행하십시오. #
#########################################################################
repl_make_slavedb 유틸리티는 모두 5단계로 이루어지며 그 중 단계1, 3, 5 에서 필요한 정보를 입력해 주어야 한다.
STEP 1 : 마스터 DB의 백업본을 복구하기 위한 사전 작업을 진행합니다.
a. 구축할 슬레이브 DB의 볼륨이 저장될 디렉토리 경로를 입력하시오.
현재 디렉토리이면 엔터 키를 입력하시오. >>
b. 구축할 슬레이브 DB의 로그 볼륨이 저장될 디렉토리 경로를 입력하시오.
현재 디렉토리이면 엔터 키를 입력하시오. >>
STEP 2 : 슬레이브 DB 백업본을 복구합니다.
- 백업 파일과 백업볼륨 정보 파일이 반드시 현재 디렉토리에 존재해야 합니다.
- 슬레이브 DB를 복구하고 있습니다. 잠시만 기다려 주시기 바랍니다...
- 슬레이브 DB 가 복구되었습니다.
STEP 3 : 복구된 최종 로그 번호와 슬레이브 DB 정보를 배포 DB에 기록합니다.
a. 배포 DB 이름을 입력하시오. >>
- 배포 DB가 같은 호스트에 없습니다.
- 배포 DB가 위치한 호스트의 IP 주소를 입력하시오. >>
b. 배포 DB에 접속하기 위한 DBA 계정의 암호를 입력하시오. >>
STEP 4 : 슬레이브 DB를 생성하고 구동합니다.
STEP 5 : 슬레이브 DB 구축 후 사후 처리 단계
- 이 작업을 위해서는 마스터 DB의 DBA 계정이 필요합니다.
- 마스터 DB의 DBA 계정을 입력하시오. >>
복제 파라미터 설정과 복제 그룹을 설정할 필요가 없으면 아래 6, 7 단계는 (q-중지)로 통과할 수 있다.
STEP 6 : 파라미터 설정 단계
1. perf_poll_interval - 복제 지연시간을 측정하는 단위(초)
2. size_of_log_buffer - 복제에이전트의 로그버퍼 크기(페이지)
3. size_of_cache_buffer - 복제에이전트의 복제로그버퍼 크기(페이지)
4. size_of_copylog - 복제로그의 페이지 수
5. index_replication - 인덱스 복제 여부
6. for_recovery - 마스터 교체용 복제 여부
7. log_apply_interval - 복제 수행 주기(초)
8. restart_interval - 슬레이브 재접속 주기(초)
-- 변경하고자 하는 파라미터 번호 (q - 중지) q
STEP 7 : 복제 그룹 설정 단계
- 복제 대상 클래스를 선정합니다.
MASTER_HOST :
-------------------------------------------------------------------------
$master_db_name의 모든 클래스가 복제 대상으로 지정되어 있습니다.
복제 그룹을 다시 설정하시겠습니까? (y 또는 n) >>
1. 복제 그룹을 초기화하고 클래스를 새로 추가
2. 전체 클래스 중에서 복제 제외 클래스 지정
==> 작업 번호 입력 (q - quit) >>
repl_make_slavedb 유틸리티로 슬레이브 데이터베이스를 새로 생성한 경우에는 반드시 기존에 사용하던 복제로그, 추적로그 등이 남아 있는지를 확인하고 삭제해야 정상적으로 복제가 진행된다. 예를 들어 repl_make_distdb 유틸리티 수행 시 복제로그 및 추적로그의 파일 경로를 /home/replication/log로 설정한 경우 해당 디렉토리 아래에 <master_db_name>.copy, <master_db_name>.copy.ar0, <dist_db_name>.tail 등의 파일이 있는지 확인해야 한다.