콘텐츠로 이동

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을 참고한다.

IF NOT EXISTS#

IF NOT EXISTS 절을 명시하면 같은 이름의 이중화 객체가 없을 때만 생성한다. 같은 이름의 이중화 객체가 있는 경우, CREATE 문은 이름 중복 오류 없이 실행되며 기존의 이중화 객체에는 아무 영향을 주지 않는다.

replication_name#

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

FOR ANALYSIS | FOR ANALYSIS PROPAGATION#

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

log analyzer는 IB(InfiniBand)와 SSL(SSL/TLS) 통신 방법을 지원하지 않는다.

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#

원격 서버 수신 쓰레드의 포트 번호로, 통신 방식에 따라 원격 서버의 다음 프로퍼티 값 중 하나를 입력한다.

  • TCP 통신 방식 : REPLICATION_PORT_NO
  • SSL 통신 방식 : REPLICATION_SSL_PORT_NO
  • IB(InfiniBand) 통신 방식 : REPLICATION_IB_PORT_NO

using_conntype_clause#

원격 서버와의 통신 방법을 지정한다. 이 절을 생략하면 TCP로 동작한다. conn_type 은 TCP, SSL, IB 중 지정할 수 있다.

  • TCP : TCP 통신을 사용 (기본값)
  • SSL: SSL 통신을 사용

    • 이중화에서 SSL을 사용하려면, 사전에 각 이중화 대상 서버에 SSL을 위한 설정이 완료되어 있어야 한다. SSL 설정에 대한 자세한 정보는 Altibase SSL/TLS User's Guide를 참고한다.
  • IB : 인피니밴드(InfiniBand) 통신을 사용

    • 인피니밴드를 사용하려면, IB_ENABLE 프로퍼티의 값을 1로 설정해야한다.
    • 인피니밴드를 사용하면 물리적 네트워크 장애는 감지되지 않는다.
  • ib_latency

    rsocket의 RDMA_LATENCY 옵션값을 지정할 수 있으며, 기본값은 0이다. conn_type이 IB인 경우에만 입력 가능하다. 이 값이 1이면 CPU 자원을 소모하더라도, 적은 대기 시간을 사용한다.

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.