배포 데이터베이스 스키마

배포 데이터베이스는 복제에 필요한 메타 데이터를 관리하기 위한 데이터베이스이다. 마스터 및 슬레이브 데이터베이스 정보, 추적 정보, 복제 파라미터, 슬레이브 데이터베이스를 자동으로 마스터 데이터베이스로 교체하는 기능 제공을 위한 정보로 구성된다.

클래스 이름: db_info

db_info는 master_info 및 slave_info의 수퍼 클래스로서 공통으로 필요한 항목을 관리한다.

속성 이름

타입

설명

비고

dbid

integer

데이터베이스 고유 식별자

기본키

dbname

varchar(126)

데이터베이스 이름

 

master_ip

varchar(50)

데이터베이스 서버의 IP 주소

portnum

integer

복제 서버의 TCP 포트 번호

클래스 이름: master_info

master_info 클래스에서는 복제하려고 하는 원본 데이터베이스의 데이터베이스 이름, 복제 서버에 접속하기 위한 IP 주소 및 TCP 포트 번호, 복제 로그 파일의 디렉터리 경로 등의 정보를 관리한다. repl_make_distdb 유틸리티를 수행하여 이 값을 지정한다.

속성 이름

타입

설명

비고

dbid

integer

데이터베이스 고유 식별자

db_info 상속

dbname

varchar(126)

데이터베이스 이름

db_info 상속

master_ip

varchar(50)

복제 서버의 IP 주소

db_info 상속

portnum

integer

cubrid.conf의 cubrid_port_id 사용

db_info 상속

copylog_path

varchar(256)

복제 로그를 저장할 파일 경로

size_of_log_buffer

integer

repl_agent가 트랜잭션 로그를 임시로 저장하는 버퍼의 수를 지정.
한 버퍼의 크기는 데이터베이스 페이지 크기와 동일.

디폴트 값 : 500

size_of_cache_buffer

integer

repl_agent가 복제 로그를 임시로 저장하는 버퍼의 수를 지정.
한 버퍼의 크기는 데이터베이스 페이지 크기와 동일.

디폴트 값 : 100

size_of_copylog

integer

복제 로그의 페이지 수를 정의.
만약 지정된 페이지 수 이상인 경우 이미 처리 완료된 페이지는 truncate됨.

디폴트 값 : 5000

start_pageid

integer

복제 로그의 첫 페이지 번호

사용 안 함

first_pageid

integer

활성 복제 로그의 첫 페이지 번호

last_pageid

integer

복제 로그의 마지막 페이지 번호

클래스 이름: slave_info

slave_info 클래스에서는 복제 대상 슬레이브 데이터베이스의 데이터베이스 이름, 복제 계정 및 암호 등을 관리한다. repl_make_slavedb 유틸리티를 수행하여 이 값을 지정한다.

속성 이름

타입

설명

비고

dbid

integer

데이터베이스 고유 식별자

db_info 상속

dbname

varchar(126)

데이터베이스 이름

db_info 상속

master_ip

varchar(50)

데이터베이스 서버의 IP 주소

db_info 상속

portnum

integer

복제 서버의 TCP 포트 번호

db_info 상속

userid

varchar(32)

슬레이브 데이터베이스의 복제 계정

passwd

varchar(32)

슬레이브 데이터베이스의 복제 계정 암호

trails

set_of(trail_info)

슬레이브 데이터베이스에 반영된 최종 로그 번호

repl_make_slavedb 유틸리티 수행 시 초기화됨

클래스 이름: trail_info

trail_info 클래스에서는 복제할 마스터와 슬레이브 관계 정보 및 복제를 시작할 로그 번호 등을 관리한다. repl_make_slavedb 유틸리티를 수행하여 이 값을 지정한다.

속성 이름

타입

설명

비고

master_dbid

integer

마스터 데이터베이스의 식별자

slave_dbid

integer

슬레이브 데이터베이스의 식별자

final_pageid

integer

슬레이브 데이터베이스에 최종으로 반영된 로그 페이지 번호

final_offset

integer

슬레이브 데이터베이스에 최종으로 반영된 로그 페이지 위치

all_repl

char(1)

모든 클래스의 복제 여부.

  • Y 또는 y : 설정
  • N 또는 n : 설정 안 함

현재는 for_recovery와 같은 방식으로 동작. 추후 구분 예정.

repl_count

number(15,0)

복제한 트랜잭션 개수

갱신된 정보는 repl_check_sync 명령어를 통해 확인할 수 있음.

status

char(1)

현재 repl_agent의 상태 정보.

  • F : 복제를 구성하고 에이전트를 한번도 실행하지 않은 상태
  • A : 복제 실행 중
  • I : idle 상태

갱신된 정보는 repl_check_sync 명령어를 통해 확인할 수 있음.

error_msg

string

사용 안 함

stop_time

timestamp

사용 안 함

perf_poll_interval

integer

복제 지연 시간 측정을 설정하는 파라미터(단위 : 초).

  • 허용 범위 : 10초에서 60초

디폴트 값 : 10

log_apply_interval

integer

사용 안 함

for_recovery

integer

마스터 데이터베이스에 장애 발생 시 마스터 데이터베이스로 대체할 목적으로 복제를 구성할 경우 설정한다. 이 값이 y이면 index_replication 값도 y로 설정되며 마스터의 모든 클래스가 복제된다.

  • Y 또는 y : 설정
  • N 또는 n : 설정 안 함

현재는 all_repl과 같은 방식으로 동작.

디폴트 값 : n

index_replication

char(1)

인덱스를 자동으로 복제하고자 할 때 설정.

  • Y 또는 y : 설정
  • N 또는 n : 설정 안 함

디폴트 값 : n

restart_interval

integer

repl_agent가 배포 데이터베이스에 접속하여 정보를 반영하는 간격(단위: 초).

디폴트 값 : 100