콘텐츠로 이동

CREATE REPLICATION

CREATE REPLICATION#

구문#

create_replication ::=#

create_replication

option_clause ::=#

replication_item ::=#

replication_item

using_conntype_clause ::=#

replication_item

전제 조건#

SYS 사용자만이 이중화 객체를 생성할 수 있다.

설명#

이중화 객체를 생성하는 구문으로, 이는 지역 서버에서 원격 서버로의 이중화 연결을 설정한다. 이중화는 테이블 간에 1:1 로 일어난다. 즉, 한 테이블은 상대편의 오직 하나의 테이블에만 매칭된다.

데이터 충돌을 해결하기 위해 이중화 생성 구문에 AS MASTER 또는 AS SLAVE를 지정하여 Master-Slave scheme을 사용할 수 있다. 이중화 충돌 해결에 대한 자세한 내용은 Replication Manual을 참고한다.

replication_name#

이중화 이름을 명시한다. 지역 서버와 원격 서버의 이중화 객체의 이름이 동일해야 한다. 이중화 이름은 "객체 이름 규칙"을 따라야 한다.

FOR ANALYSIS | FOR ANALYSIS PROPAGATION#

XLog Sender를 생성한다. 자세한 설명은 Log Analyzer User's Manual을 참고한다.

FOR PROPAGABLE LOGGING#

이중화 수신자가 지역 서버로부터 전송 받은 로그를 다른 서버로 복제하기 위해 로그를 기록한다. 이 기능은 recovery option과 함께 사용하지 않는다.

FOR PROPAGATION#

복제된 로그를 이중화된 다른 서버로 전송한다.

option_clause#

이중화 객체의 RECOVERY, OFFLINE, GROUPING, PARALLEL, GAPLESS, RECEIVE_ONLY, META_LOGGING 옵션을 지정하는 절이다. 자세한 설명은 Replication Manual을 참고한다.

  • OPTIONS RECOVERY : 데이터 복구를 위하여 사용한다.
  • OPTIONS OFFLINE log_dir: 오프라인 이중화 옵션을 설정하기 위해 사용한다. log_dir은 Active 서버의 로그파일 경로를 입력하며, 로그파일의 경로가 여러개일 경우 콤마(,)를 이용하여 나열한다.
  • OPTIONS GROUPING : 성능을 위해 이중화 트랜잭션을 그룹화하는데 사용한다.
  • OPTIONS PARALLEL receiver_applier_count : 병렬 적용자 옵션을 지정할 때 사용한다. receiver_applier_count*는 병렬 적용자의 개수를 의미하며, 0 ~ 512까지 입력할 수 있다.
  • OPTIONS GAPLESS : 이중화 갭을 일정 수준 이하로 유지하기 위하여 사용한다.
  • OPTIONS RECEIVE_ONLY : 이중화를 수신 전용 옵션으로 설정하여 다른 노드로 변경 데이터를 전송하지 않기 위해 사용한다.
  • OPTIONS META_LOGGING : 메타 정보와 재시작 SN 정보를 파일로 저장할 때 사용한다. 이 파일은 로그파일 경로에 저장된다.

replication_host_ip#

원격 서버의 IP 주소를 입력한다.

replication_host_port_no#

원격 서버의 수신 쓰레드가 사용하는 포트번호를 입력한다. 이는 원격 서버 altibase.properties 파일의 REPLICATION_PORT_NO프로퍼티 값과 일치해야 한다.

using_conntype_clause#

원격 서버와의 통신방법(TCP 또는 InfiniBand)을 설정할 수 있다.

USING conn_type [ib_latency]#

conn_type에 "TCP" 또는 "InfiniBand"를 설정할 수 있으며, 인피니밴드를 사용할 경우에만 ib_latency 값을 설정할 수 있다. 인피니밴드를 사용하려면 IB_ENABLE 프로퍼티 값이 1이어야 한다.

user_name#

이중화 대상 테이블의 소유자 이름을 명시한다.

tbl_name#

이중화 대상 테이블 이름을 명시한다.

partition_name#

이중화 대상 파티션 이름을 명시한다.

예제#

<질의> 다음 조건에 부합하는 이중화 rep1을 생성하라.

  • 지역 서버의 IP 주소가 192.168.1.60 이고 포트 번호가 25524
  • 원격 서버의 IP 주소가 192.168.1.12 이고 포트 번호가 35524
  • employees 테이블과 departments 테이블을 이중화

지역 서버의 경우 (IP: 192.168.60)

iSQL> CREATE REPLICATION rep1
    WITH '192.168.1.12',35524
    FROM sys.employees TO sys.employees,
    FROM sys.departments TO sys.departments;
Create success.

원격 서버의 경우 (IP: 192.168.1.12)

iSQL> CREATE REPLICATION rep1
    WITH '192.168.1.60',25524
    FROM sys.employees TO sys.employees,
    FROM sys.departments TO sys.departments;
Create success. 

<질의> 원격 서버가 이중화 rep1의 로그를 수신 후, 다른 원격 서버로 로그를 복제하여 전송하기 위한 이중화 rep2를 생성하여 전송한다.

iSQL> CREATE REPLICATION rep1 
    FOR PROPAGABLE LOGGING WITH '192.168.1.12',35524
    FROM sys.t1 TO sys.t1;
iSQL> SELECT replication_name, role 
    FROM system_.sys_replications_;
REPLICATION_NAME                          ROLE
---------------------------------------------------------
REP1                                      2
1 row selected.

iSQL> CREATE REPLICATION rep2
    FOR PROPAGATION WITH '192.168.1.60',25524 
    FROM sys.t1 TO sys.t1;
Create success.
iSQL> SELECT replication_name, role 
    FROM system_.sys_replications_;
REPLICATION_NAME                          ROLE
---------------------------------------------------------
REP2                                      3
1 row selected.

<질의> 원격 서버의 이중화는 지역 서버의 수신 전용(RECEIVE_ONLY)으로만 동작하도록 이중화를 생성한다.

지역 서버의 경우 (IP: 192.168.60)

iSQL> CREATE REPLICATION rep1
    WITH '192.168.1.12',35524
    FROM sys.employees TO sys.employees,
    FROM sys.departments TO sys.departments;
Create success.

원격 서버의 경우 (IP: 192.168.1.12)

iSQL> CREATE REPLICATION rep1
    OPTIONS RECEIVE_ONLY
    FROM sys.employees TO sys.employees,
    FROM sys.departments TO sys.departments;
Create success.