동기화 대상 테이블 생성 및 등록
ProSync에서 테이블을 동기화하기 전에, 먼저 지원되는 데이터 타입을 확인한다. Source DB에 따라 지원하는 컬럼 타입이 다르므로 주의한다.
지원 데이터 타입
Tibero
VARCHAR2, NVARCHAR2, NUMBER, FLOAT, LONG, DATE, BINARY_FLOAT, BINARY_DOUBLE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND, RAW, CHAR, NCHAR, CLOB, NCLOB, BLOB, XMLTYPE
Oracle
VARCHAR2, NVARCHAR2, NUMBER, FLOAT, LONG, DATE, TIMESTAMP, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND, RAW, CHAR, NCHAR, CLOB, NCLOB, BLOB
PostgreSQL
CHAR, VARCHAR, INT, SMALLINT, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, BYTEA, TEXT, DATE, TIMESTAMP
주의
서로 다른 Character Set 간의 데이터 처리
Source DB와 Target DB의 Character Set이 다른 경우, 프로싱크 제품 내부에서 자동적으로 Character Set 을 Target DB Character Set 에 맞게 변환하여 데이터를 삽입한다.
단, Source DB에서 지원하는 Character Set의 범위가 Target DB에서 지원하는 Character Set의 범위보다 넓을 경우, 변환 과정에서 Target DB에서 표현할 수 없는 문자가 발생할 수 있으며, 이 경우 해당 데이터는 깨지거나 손실될 수 있다. 따라서 이와 같은 문제를 방지하기 위해서는 양쪽 DB의 Character Set 호환성을 사전에 검토하고, 필요 시 Target DB의 Character Set을 상위 호환되는 문자 집합으로 설정하는 것이 권장된다.
IDENTITY COLUMN
IDENTITY COLUMN 의 경우 ALWAYS 옵션을 사용하면 동기화가 불가능하다. 그 외 BY DEFAULT, NOT NULL 옵션의 경우 동기화가 가능하지만, target의 identity 칼럼 sequence를 사용하지 않고 source 에 저장된 값을 동기화한다.
테이블 생성
동기화 대상 테이블은 Source DB와 Target DB 각각에 존재해야 하며, 동일한 사용자 계정과 동일한 스키마로 생성되어야 한다.
다음은 TEST 사용자 계정에 테이블 T1, T2, T3을 생성하는 예제이다. Source DB와 Target DB 모두에 수행한다.
$ tbsql sys/password
SQL> CREATE USER TEST IDENTIFIED BY PASSWORD;
SQL> GRANT RESOURCE, CONNECT TO TEST;
SQL> CREATE TABLE TEST.T1 (C1 NUMBER PRIMARY KEY, C2 VARCHAR(10));
SQL> CREATE TABLE TEST.T2 (C1 NUMBER PRIMARY KEY, C2 VARCHAR(10));
SQL> CREATE TABLE TEST.T3 (C1 NUMBER PRIMARY KEY, C2 VARCHAR(10));테이블 등록
동기화 대상 테이블은 아래 경로의 파일에 등록한다.
$PRS_HOME/install/prs_obj_group1.list등록 형식은
OWNER_NAME.TABLE_NAME형태로 작성한다.특정 OWNER의 모든 테이블을 등록하려면:
OWNER_NAME.%특정 OWNER로 시작하는 계정들의 모든 테이블을 등록하려면:
OWNER_NAME%.%
특정 테이블 등록 예시
TEST.T1
TEST.T2
TEST.T3전체 또는 패턴 등록 예시
TEST.%
TEST%.%Last updated
