CREATE REPLICATION
CREATE REPLICATION#
구문#
create_replication ::=#
option_clause ::=#
replication_item ::=#
using_conntype_clause ::=#
전제 조건#
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.