ALTER REPLICATION
ALTER REPLICATION#
구문#
alter_replication ::=#
replication_item ::=#
alter_replication_set_clause ::=#
offline_clause ::=#
전제 조건#
SYS 사용자만이 이중화 동작을 변경할 수 있다.
설명#
CREATE REPLICATION 구문으로 이중화 생성 후 이중화의 동작을 정의하는 구문이다. 이중화 종료 등의 제어문에 대한 설명은 '5. 데이터 제어어 > ALTER REPLICATION' 문을 참조한다.
이중화에 관한 자세한 내용은 Replication Manual 을 참고한다.
replication_name#
이중화 객체의 이름을 명시한다.
SYNC#
지역 서버에 있는 이중화 대상 테이블들의 모든 데이터를 원격 서버의 해당 테이블로 전송한 후 이중화가 시작된다.
SYNC ONLY#
지역 서버에 있는 이중화 대상 테이블들의 모든 데이터를 원격 서버의 해당 테이블로 전송한다. 이중화 송신 쓰레드는 생성되지 않는다.
PARALLEL parallel_factor#
Parallel_factor 값은 생략 가능하다. 생략할 경우 1로 인식된다.
Parallel_factor의 최대값은 CPU 개수 * 2이다. 최대값을 초과하여 지정해도 최대
값 이상으로 설정되지 않는다. 0 또는 음수 값을 지정하면 오류 메시지가 반환된다.
TABLE replication_item#
지역서버의 이중화 대상 테이블 중에서 SYNC로 동기화할 테이블 또는 파티션을 지정한다. 이 절이 명시되면 지정된 테이블 또는 파티션이 동기화된 후 이전에 마지막으로 이중화를 수행했던 시점부터 이중화가 시작된다. TABLE 절을 사용하지 않았을 때에는 모든 이중화 대상 테이블과 파티션이 동기화된 후 현재 로그의 위치부터 이중화가 시작된다.
START#
가장 최근에 마지막으로 이중화했던 시점부터 이중화를 시작한다.
QUICKSTART#
현재 시점부터 이중화를 시작한다.
START/ QUICKSTART RETRY#
RETRY 옵션을 사용하여 이중화를 START하거나 QUICKSTART하면, 핸드쉐이크가 실패하더라도 송신 쓰레드가 지역서버에 생성된다. 지역서버와 원격서버간의 핸드쉐이크가 이후 성공할 때, 이중화가 시작된다.
이 옵션이 사용되면, iSQL은 첫 핸드쉐이크 시도가 실패하더라도 핸드쉐이크 성공 메시지를 출력한다. 그러므로 사용자는 이 구문의 실행 결과를 트래이스 로그 또는 성능 뷰를 통해서 확인해야 한다.
RETRY 옵션 없이 이중화 시작시 첫 핸드쉐이크 시도가 실패하면 ,에러가 발생하고 이중화 시작은 중지된다. 단, RETRY 옵션은 EAGER 모드에서는 지원되지 않는다.
STOP#
데이터 제어어의 ALTER REPLICATION 절을 참조한다.
RESET#
이 명령은 이중화 정보(재시작 SN 같은)를 초기화시킨다. 이는 이중화가 중지 중일 때만 실행될 수 있다. 이는 DROP REPLICATION 구문과 CREATE REPLICATION 구문을 연달아 실행한 것과 같은 효과를 낸다.
ADD TABLE#
이중화 객체에 테이블을 추가한다. 이중화가 중지되어 있는 상태에서만 테이블을 이중화 객체에 추가할 수 있다.
TABLE FROM replication_item TO replication_item#
이중화 대상 테이블 또는 파티션 이름을 테이블 소유자 이름과 함께 명시한다
DROP TABLE#
이중화 테이블을 이중화 객체로부터 삭제한다. 이중화가 중지되어 있는 상태에서만 이중화 테이블을 삭제할 수 있다.
FLUSH#
데이터 제어어의 ALTER REPLICATION 절을 참조한다.
SET HOST#
특정 호스트를 현재 호스트로 지정한다. 이중화를 중지한 상태에서 변경 가능하다.
USING conn_type [ib_latency]#
원격 서버와의 통신방법(TCP/ IB)을 지정할 수 있다. 이 구문을 생략하는 경우, TCP 통신이 기본 동작이다.
TCP#
TCP 통신 방법을 사용한다.
IB#
인피니밴드 통신 방법을 사용한다. 인피니밴드를 사용할 경우에만 ib_latency 값을 설정할 수 있다. 인피니밴드를 사용하려면 IB_ENABLE 프로퍼니 값이 1이어야 한다.
ib_latency#
conn_type을 "IB"로 설정할 때만 지정할 수 있다. CPU 자원을 더 사용하여 Latency를 낮추기 위해서는 1로 설정한다. 기본값은 0이다.
alter_replication_set_clause#
이 절은 이중화 객체가 LAZY로 설정되어 있고 이중화를 중지한 상태에서 아래의 옵션을 변경할 수 있다.
RECOVERY#
데이터 복구를 위하여 사용하거나 사용하지 않도록 변경할 수 있다.
GAPLESS#
이중화 갭 해소 옵션을 사용하거나 사용하지 않도록 변경할 수 있다.
GROUPING#
이중화 트랜잭션 그룹 옵션을 사용하거나 사용하지 않도록 변경할 수 있다.
PARALLEL#
병렬 적용자 옵션을 사용하거나 사용하지 않게 변경 할 수 있다. 그리고 적용자의 개수를 변경할 수 있다.
offline_clause#
오프라인 옵션 이중화를 시작하거나 오프라인 옵션의 설정을 변경하기 위한 절이다.
- SET OFFLINE ENABLE WITH log_dir : 이중화 객체에 오프라인 옵션을 설정하는 구문이다. log_dir은 Active 서버의 로그파일 경로를 입력하며, 로그파일의 경로가 여러개일 경우 콤마(,)를 이용하여 나열한다.
- SET OFFLINE DISABLE : 이중화 객체에 설정된 오프라인 옵션을 비활성화한다. 이 구문은 이중화가 중지된 상태에서만 수행할 수 있다.
- START WITH OFFLINE : 오프라인 이중화를 시작한다. 오프라인 이중화는 일회성 작업으로, Active 서버에서 미전송된 로그를 모두 반영한 후 바로 종료된다.
- BUILD OFFLINE META : 오프라인 이중화를 수행할 때 필요한 메타 정보를 구성한다.
- BUILD OFFLINE METE AT SN(sn) : 송신자 메타파일과 재시작 SN 파일을 읽어 오프라인 이중화에 필요한 메타 정보를 구성한다.
- RESET OFFLINE META : BUILD OFFLINE META 로 구성된 메타 정보를 초기화 한다.
주의 사항#
이중화로 작업을 하는 사용자들이 이중화를 이용하기 전에 명심해야 할 몇가지 사항이 있다. ALTER REPLICATION 구문을 실행하기 전에 Replication Manual을 숙지하기 바란다.
예제#
이름이 rep1인 이중화 객체를 시작하라.#
<질의> 지역서버의 데이터를 원격서버로 전송한 후 이중화를 시작하라.
iSQL> ALTER REPLICATION rep1 SYNC;
Alter success.
<질의> 이중화 rep1이 가장 최근에 마지막으로 수행한 이중화 시점부터 rep1 이중화를 시작하라.
iSQL> ALTER REPLICATION rep1 START;
Alter success.
<질의> 현재 시점부터 이중화를 시작하라.
iSQL> ALTER REPLICATION rep1 QUICKSTART;
Alter success.
이름이 rep1인 이중화 객체에서 이중화 대상 테이블 employees을 삭제하라.#
iSQL> ALTER REPLICATION rep1 STOP;
Alter success.
iSQL> ALTER REPLICATION rep1 DROP TABLE FROM sys.employees TO sys.employees;
Alter success.
이름이 rep1인 이중화 객체에 파티션드 테이블 tbl_sales의 파티션 p2를 추가하라.#
iSQL> ALTER REPLICATION rep1 STOP;
Alter success.
iSQL> ALTER REPLICATION rep1 ADD TABLE
FROM sys.tbl_sales PARTITION p2 TO sys.tbl_sales PARTITION p2;
Alter success.
이름이 rep1인 이중화 객체에 테이블 employees을 추가하라.#
iSQL> ALTER REPLICATION rep1 STOP;
Alter success.
iSQL> ALTER REPLICATION rep1 ADD TABLE FROM sys.employees TO sys.employees;
Alter success.