슬레이브 데이터베이스 추가

마스터 데이터베이스의 백업 볼륨을 슬레이브 호스트로 복사한 후에 슬레이브 데이터베이스를 추가하기 위해 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 등의 파일이 있는지 확인해야 한다.