Sequence 동기화
개요
ProSync는 Source 데이터베이스의 Sequence 객체 값을 Target 데이터베이스로 실시간 동기화하는 기능을 제공한다. Sequence의 NEXTVAL이 호출되며 속성값이 갱신될 때 마다 Target으로 전달된다.
지원 환경
Tibero
Tibero
지원
Oracle
Tibero
지원
Tibero to Tibero 환경
동기화 방식
Source Tibero에서 Sequence의 NEXTVAL이 호출되면, 해당 값이 Target Tibero의 동일 Sequence에 실시간으로 반영된다.
사전 준비사항
Source와 Target에 동일한 이름의 유저 아래에 동일한 이름의 Sequence가 생성되어 있어야 한다.
ProSync 설치 스크립트가 정상적으로 수행되어 있어야 한다.
동기화 대상 리스트 파일(기본값: prs_obj_group1.list) 파일에 SYS._DD_SEQ 테이블이 기재돼 있어야 한다.
동기화 대상 리스트 파일(기본값: prs_obj_group1.list) 파일에 동기화하고자 하는 SEQUENCE가 기재돼 있어야 한다.
Source DB 의 config 파일에 _DDL_SEQ_SUPPLOG=Y 파라미터를 사용해야 한다.
Target DB 의 config 파일에 SEQ_GET_NEXTVAL_FROM_DD_TABLE=Y 파라미터를 사용해야 한다.
제약사항
Sequence 생성 시 NOCACHE 옵션으로 생성 필요하다.
Source, Target DB 의 동기화 대상이 되는 SEQUENCE 짝의 설정값은 일치해야 한다.
프로싱크에서 Sequence ALTER 수행 시 타겟 DB에서 SYS._DD_SEQ NEXTVAL 값을 기준으로 Boundary Check를 수행하기 때문에, 타겟 NextVal 값보다 MAX/MIN 값이 더 작은/큰 경우, TBR-7134 에러가 발생한다.
Oracle to Tibero 환경
동기화 방식
Source Oracle에서 Sequence의 NEXTVAL이 호출되면, 해당 값이 Target Tibero의 동일 Sequence에 반영된다. Target의 Sequence 값이 Source 와 겹치지 않고, 동일하거나 앞서가도록 동기화가 진행된다.
사전 준비사항
Source Oracle과 Target Tibero에 동일한 이름의 Sequence가 생성되어 있어야 한다.
ProSync 설치 스크립트가 정상적으로 수행되어 있어야 한다.
동기화 대상 리스트 파일(기본값: prs_obj_group1.list) 파일에 SYS.SEQ$ 테이블이 기재돼 있어야 한다.
동기화 대상 리스트 파일(기본값: prs_obj_group1.list) 파일에 동기화하고자 하는 SEQUENCE가 기재돼 있어야 한다.
제약사항
Source, Target DB 의 동기화 대상이 되는 SEQUENCE 짝의 설정값은 일치해야 한다.
SEQUENCE 값의 정합성을 위해 ORDER 옵션의 사용이 권장된다.
주의사항
설치 준비
Instance 설치 과정에서 DB 의 PRS_INSTALL_USER 는 SYS.SEQ$(SYS._DD_SEQ) 테이블 및 동기화 하고자 하는 SEQUENCE 에 대한 SELECT 권한이 필요하다.
동기화 시점
NEXTVAL 호출 시에만 동기화된다. CURRVAL 조회는 동기화되지 않는다.
Sequence 존재 필수
Target에 동일한 이름의 Sequence가 미리 생성되어 있어야 한다.
ALTER SEQUENCE
Sequence 속성 변경(INCREMENT BY, MAXVALUE 등)은 DDL 동기화를 통해 처리된다.
대량 호출 시
빈번한 NEXTVAL 호출 시 동기화 지연이 발생할 수 있다. 적절한 CACHE 값 설정으로 호출 빈도를 조절하는 것이 권장된다.
Active-Active 환경 지양
Target DB 에서 SEQUENCE 의 사용을 지양한다. NEXTVAL을 통해 Target DB 에서 SEQUENCE 를 사용하게 되면 동기화 중인 SEQUENCE 의 정합성, 특히 고유성에 문제가 생길 가능성이 높다.
Last updated
