모든 페이지
1 / 5

Loading...

Loading...

Loading...

Loading...

Loading...

동기화 대상 테이블 생성 및 등록

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

Oracle

ProSync 4.7은 Oracle 확장 데이터 타입을 자동으로 인식한다. 컬럼의 선언 길이를 바이트 기준으로 확인하며, VARCHAR2·NVARCHAR2는 4,000바이트 초과, RAW는 2,000바이트 초과인 컬럼을 확장 타입으로 처리한다. USE_ORACLE_EXTENDED_TYPE 파라미터는 사용하지 않는다.

확장 타입 컬럼이 있는 소스 테이블에는 PRIMARY KEY가 필요하며, UNIQUE 제약조건이나 ROWID로 대신할 수 없다. 별도로 저장된 확장 값은 Llob 프로세스가 소스 DB에 Flashback Query를 수행하여 읽는다.

Llob 프로세스의 동작은 를 참고한다.


동기화 대상 테이블은 Source DB와 Target DB 각각에 존재해야 한다. MAP Rule을 사용하지 않는 기본 구성에서는 Source와 Target에 동일한 사용자 계정과 동일한 스키마 구조로 생성하는 것을 전제로 한다.

다음은 TEST 사용자 계정에 테이블 T1, T2, T3을 생성하는 예제이다. Source DB와 Target DB 모두에 수행한다.


동기화 대상 테이블은 아래 경로의 파일에 등록한다.

등록 형식은 OWNER_NAME.TABLE_NAME 형태로 작성한다.

#으로 시작하는 줄과 빈 줄은 무시된다. 그 외의 줄은 OWNER_NAME.TABLE_NAME 형식이어야 하며, 구분자 .가 없거나 둘 이상이거나 OWNER 또는 TABLE이 비어 있으면 잘못된 항목으로 판단해 설치를 중단한다.

동기화 대상을 지정할 때 Table명과 User(Owner)명 모두에 % 와일드카드를 사용할 수 있다.

지정 예시
대상

사용 예시는 다음과 같다.

Source DB가 Tibero 또는 Oracle인 경우, 다음 객체는 동기화 대상에서 자동으로 제외된다. 제외 대상에 따라 적용 범위가 다르다.

제외 대상
적용 범위
설명

또한 등록되는 객체 타입은 TABLE과 SEQUENCE로 한정되며, 그 외의 객체 타입은 등록되지 않는다.


Source DB가 Tibero 또는 Oracle인 경우, 설치 config 파일에 AUTO_SYNC_ON_CREATE=Y를 설정하면 설치 이후 CREATE 문으로 생성된 테이블과 시퀀스가 자동으로 동기화 대상에 등록된다. prs_obj_group#.list에 미리 적지 못한 테이블을 매번 Admin 명령으로 등록하거나 재설치할 필요가 없다.

자동 등록을 사용하려면 Source DB에 DB 단위 supplemental log가 설정되어 있어야 한다. 테이블 단위로만 supplemental log를 건 경우, 자동 등록된 테이블은 supplemental log가 없는 상태가 되어 변경분을 추출할 수 없다.

Source DB가 Oracle인 경우 DB 단위로 supplemental log를 설정한다. 설치 config 파일에 SUPP_LOG_LVL_ALL=Y를 설정하면 설치 과정에서 database level로 설정된다.

Source DB가 Tibero인 경우 _DDL_AUTO_SUPPLOG_CTBL을 TRUE로 설정하여 DB 단위 supplemental log를 활성화한다. 운영 중인 DB에는 ALTER SYSTEM으로 바로 적용할 수 있으나 이 변경은 DB 재기동 후 유지되지 않으므로, TIP 파일에도 같은 값을 설정한다. TAC 환경에서는 모든 노드에 동일하게 설정한다.

설치 config 파일에 AUTO_SYNC_ON_CREATE=Y를 설정하면 설치 과정에서 이 값을 확인하며, 설정되어 있지 않으면 안내 메시지와 함께 설치를 중단한다.

%.%

Source DB의 모든 소유자의 모든 테이블 (User 와일드카드)

AQ 관련 테이블

항상

이름이 AQ$_ 로 시작하는 테이블이 제외된다.

IOT overflow 세그먼트

항상

이름이 SYS_IOT_OVER_ 로 시작하는 테이블이 제외된다.

Recycle Bin 객체

항상

이름이 BIN$ 로 시작하는 객체가 제외된다.

,
INTERVAL DAY TO SECOND
,
RAW
,
CHAR
,
NCHAR
,
CLOB
,
NCLOB
,
BLOB
,
XMLTYPE

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

PostgreSQL

CHAR, VARCHAR, INT, SMALLINT, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, BYTEA, TEXT, DATE, TIMESTAMP

TEST.%

TEST 소유의 모든 테이블 (Table 와일드카드)

TEST.TB%

TEST 소유의 테이블 중 이름이 TB로 시작하는 테이블

TEST%.%

시스템 스키마의 객체

OWNER를 %가 포함된 패턴으로 지정한 경우에만

Oracle 12c 이상은 DB가 관리하는 계정(ALL_USERS.ORACLE_MAINTAINED = 'Y', SYS · SYSTEM 등)이 제외된다. Oracle 11g는 이 컬럼이 없으므로 Oracle 기본 계정과 옵션 계정의 고정 목록(SYS, SYSTEM, OUTLN, DBSNMP, DIP, ORACLE_OCM, APPQOSSYS, ANONYMOUS, XS$NULL, XDB, CTXSYS, MDSYS, MDDATA, ORDSYS, ORDDATA, ORDPLUGINS, SI_INFORMTN_SCHEMA, OLAPSYS, EXFSYS, WMSYS, SYSMAN, MGMT_VIEW, OWBSYS, OWBSYS_AUDIT, SPATIAL_CSW_ADMIN_USR, SPATIAL_WFS_ADMIN_USR, TSMSYS, DMSYS, WKSYS, WKPROXY, WK_TEST, LBACSYS, DVSYS, DVF, FLOWS_FILES, APEX_PUBLIC_USER)과, APEX_030200 · FLOWS_030000처럼 APEX_ 또는 FLOWS_ 뒤에 숫자 6자리가 붙는 계정이 제외되며, 목록에 없는 계정은 제외되지 않는다. Tibero는 SYS, SYSCAT, SYSGIS, OUTLN, LBACSYS 및 일반 사용자가 아닌 계정이 제외된다.

ProSync 운영 계정과 메타 객체

항상

Llob Process

참고

  • GEOMETRY 컬럼 타입은 Tibero to Tibero 동기화만 지원된다.

  • CLOB, BLOB 컬럼의 경우, Target PostgreSQL의 OID 컬럼에 저장할 수 있으며 MAPPING RULE에 LARGEOBJECT 설정이 필요하다.

주의

서로 다른 Character Set 간의 데이터 처리

  • Source DB와 Target DB의 Character Set이 다른 경우, ProSync 제품 내부에서 자동으로 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, BY DEFAULT ON NULL 옵션의 경우 동기화가 가능하지만, target의 identity 칼럼 sequence를 사용하지 않고 source에 저장된 값을 동기화한다.

Oracle 확장 데이터 타입

ALTER MODIFY로 기존 컬럼의 길이를 확장한 뒤, 큰 값이 chained row 형태로 기록되어 로그 리더가 조각을 병합하지 못하는 변경은 지원하지 않는다. 이 경우 Extract가 경고 로그를 남기고 해당 변경을 건너뛴다.

테이블 생성

참고

Source와 다른 database/owner/table/column으로 반영해야 하는 경우에는 MAP Rule을 설정하여 매핑할 수 있다. 자세한 내용은 운영 가이드의 MAP Rule 설명을 참고한다.

테이블 등록

특정 테이블 등록 예시

참고

prs_obj_group#.list 파일 내의 OWNER_NAME과 TABLE_NAME은 대소문자를 구분한다.

와일드카드 등록

자동으로 제외되는 대상

주의 — OWNER를 이름으로 명시한 경우

시스템 스키마 제외는 %.%, TEST%.%처럼 OWNER에 %를 사용해 여러 스키마를 한 번에 지정할 때만 적용된다. TEST.%처럼 OWNER를 이름으로 명시하면 적용되지 않으며, 지정한 스키마의 객체가 그대로 등록된다.

Oracle CDB 환경에서 C## 접두어 없이 만든 계정이나 ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE를 사용해 만든 계정은 ALL_USERS.ORACLE_MAINTAINED가 'Y'로 표시된다. 이런 계정도 OWNER로 명시하면 동기화 대상으로 등록된다.

참고

위의 자동 제외는 prs_obj_group#.list를 처리하는 설치 과정에 적용된다. Admin 명령으로 테이블을 직접 등록할 때는 적용되지 않는다.

Source DB가 PostgreSQL인 경우에도 위의 자동 제외가 적용되지 않으며 일반 테이블과 파티션 테이블만 등록된다. 와일드카드로 지정할 때는 시스템 스키마가 포함되지 않도록 소유자 패턴을 명시적으로 지정한다.

주의 — 와일드카드 사용과 Instance 구성

와일드카드로 동기화 대상을 지정하면 다른 Instance가 동기화하고 있는 테이블까지 대상에 포함될 수 있으며, 이 경우 같은 테이블이 여러 Instance를 통해 중복으로 동기화된다.

특히 User 와일드카드(%.%, TEST%.%)는 Table 와일드카드보다 범위가 넓어 다른 소유자의 테이블까지 한 번에 포함하므로, User 와일드카드를 사용하는 경우 단일 Instance로 구성할 것을 권장한다.

Table 와일드카드(TEST.%)를 사용하는 경우에도 동일한 문제가 발생할 수 있으므로, 다중 Instance 환경에서는 Instance별 동기화 대상이 서로 겹치지 않는지 확인한 뒤 사용한다.

주의 — 동기화 대상이 등록되지 않은 경우

prs_obj_group#.list의 어떤 항목도 실제 객체를 찾지 못하면 설치가 실패로 종료된다.

설치 과정에서 항목별로 조회 결과가 0건이면 * warning: no object matched [TEST.%] - nothing registered for this entry 형태의 경고를 출력하고, 등록된 동기화 대상이 하나도 없으면 Checking registered sync objects... none registered를 출력하며 설치를 중단한다.

OWNER와 TABLE 이름의 대소문자가 맞는지, 그리고 해당 객체가 설치 시점에 Source DB에 이미 존재하는지 확인한 뒤 다시 설치한다.

주의

prs_obj_group#.list 파일은 설치 시점에만 처리되어 Source의 동기화 대상 목록(PRS_OBJ_LIST)을 구성하는 데 사용된다. 설치 이후에 이 파일만 수정하는 것으로는 운영 중인 인스턴스에 반영되지 않는다.

설치 이후에 생성한 테이블을 동기화 대상에 추가하려면 아래의 '동기화 대상 자동 등록'을 사용하거나, Admin 명령 ALTER <instance> ADD TABLE <owner>.<table> GROUP=<n>으로 등록한다. 수동으로 등록하는 경우 Tibero/Oracle은 해당 테이블의 supplemental logging 설정을, PostgreSQL은 replica identity 및 publication 설정을 함께 확인해야 한다.

동기화 대상 자동 등록

사전 준비 — DB 단위 Supplemental Log

설정 예시

주의

자동 등록은 Source DB의 동기화 대상 목록에 등록하는 것까지를 수행한다. Target DB에 동일한 테이블이 없으면 반영 단계에서 실패하므로, CREATE TABLE에 대한 DDL 동기화를 함께 구성하거나 Target DB에 테이블을 미리 생성해야 한다.

또한 자동 등록은 대상을 가리지 않고 생성되는 모든 테이블과 시퀀스를 등록하므로 다른 Instance의 동기화 대상과 중복될 수 있다. 와일드카드 등록과 마찬가지로 단일 Instance 구성에서 사용할 것을 권장하며, 동기화하지 않아야 할 객체가 생성되는 환경에서는 사용에 유의한다.

이름이 TEST로 시작하는 모든 소유자의 모든 테이블 (User 와일드카드)

PRS_USER 소유의 객체와 PRS_OBJ_LIST, PRS_DD_*, PRS_LCT 등 ProSync가 생성한 메타 객체가 제외된다.

$ 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
TEST.T1
TEST.T2
TEST.T3
TEST.%
TEST%.%
%.%
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
SQL> ALTER SYSTEM SET _DDL_AUTO_SUPPLOG_CTBL=TRUE;
_DDL_AUTO_SUPPLOG_CTBL=TRUE
# Source Tibero
SRC_DB_TYPE=TIBERO
SRC_DB_NAME=src_tibero
AUTO_SYNC_ON_CREATE=Y
# Source Oracle
SRC_DB_TYPE=ORACLE
SRC_DB_NAME=src_oracle
AUTO_SYNC_ON_CREATE=Y
SUPP_LOG_LVL_ALL=Y

설치 전 준비

ProSync를 설치하기 전에 반드시 확인해야 할 항목들을 안내한다. 환경 변수 설정, DB 사전 설정 등 설치가 원활히 진행되기 위한 준비 과정을 설명한다.

시스템 환경변수 설정

ProSync를 설치하기 위해 필요한 환경변수를 설명한다.

ProSync를 설치하기 위해 필요한 환경변수는 다음과 같다.

환경변수
설명

TB_HOME

TB_HOME은 Tibero DB가 설치된 홈 디렉토리이다. Tibero가 Source DB 또는 Target DB에 포함된 경우 해당 경로로 설정한다. Tibero를 사용하지 않는 경우에도 변수 자체는 반드시 설정되어야 하며, 이 경우 공백이나 dummy 경로 등으로 설정한다.

ORACLE_HOME

설치 스크립트는 SQL 실행 결과를 prs_install.log에 기록한 뒤, 그 텍스트에서 오류 코드를 추출하여 무시해도 되는 오류인지 판단한다. 예를 들어 설치 초기의 기존 객체 정리 단계에서는 객체가 존재하지 않아 발생하는 오류(TBR-7071, ORA-00942, ORA-02289, ORA-04043 등)가 정상적으로 발생하며, 설치 스크립트는 이를 무시하고 진행한다.

따라서 오류 메시지가 설치 로그에 깨지지 않고 기록되도록, 설치를 수행하는 shell의 locale과 DB 클라이언트의 Character Set 설정을 서로 일치시켜야 한다. 설정이 서로 다르면 DB가 반환한 오류 메시지가 깨진 문자로 기록되고, 설치 스크립트가 오류 코드를 정확히 추출하지 못해 무시해도 되는 오류까지 설치 실패로 처리되어 설치가 중단된다.

다음은 오류 메시지가 깨져 설치가 중단된 예시이다. 무시 대상인 ORA-00942가 실패로 처리되었다.

  • 설치를 수행하는 shell의 locale(LANG, LC_*)과 DB의 CHARSET, NCHARSET 설정이 서로 맞는지 확인한다.

  • DB 클라이언트의 Character Set 변수(Tibero TB_NLS_LANG, Oracle NLS_LANG, PostgreSQL PGCLIENTENCODING)를 shell locale의 encoding과 일치시킨다.

설치 시 Source/Target DB에 모두 접속하기 때문에 DB별 환경변수가 모두 설정되어야 한다.

  • tbsql 바이너리 경로가 PATH 환경변수에 존재해야 한다.

  • Tibero 데이터베이스를 사용하지 않는 경우, 참고하여 dsn파일 생성 후 TB_DSN_FILE 환경변수에 해당 파일 경로를 설정한다.

  • sqlplus 바이너리 경로가 PATH 환경변수에 존재해야 한다.

  • Oracle 데이터베이스를 사용하지 않는 경우, 참고하여 tnsnames.ora 파일 생성 후 TNS_ADMIN 환경변수에 해당 파일이 존재하는 폴더 경로를 설정한다.

  • psql 바이너리 경로가 PATH 환경변수에 존재해야 한다.

  • PostgreSQL 데이터베이스를 사용하지 않는 경우, 참고하여 service 파일 생성 후 PGSERVICEFILE 환경변수에 해당 파일 경로를 설정한다.

설정은 Source DB와 Target DB 구분 없이 설치에 사용하는 모든 shell에 동일하게 적용한다.

Oracle DB가 Source DB 또는 Target DB에 포함된 경우에만 설정한다.

PRS_HOME

ProSync가 설치된 최상위 디렉토리를 설정한다.

PATH

파일 시스템을 통해 특정 파일에 접근하기 위한 디렉토리 경로를 설정하는 환경변수이다. 아래와 같이 설정한다.

LD_LIBRARY_PATH

DB 접속을 위해 클라이언트 라이브러리에 대한 접근 경로를 설정한다.

OS에 따라 LIBPATH, SHLIB_PATH 등으로 다를 수 있으며, 아래와 같이 설정한다.

LANG, LC_*

설치를 수행하는 shell의 locale을 설정한다. 설정값에 따라 설치가 실패할 수 있으므로 아래 'Locale 및 Character Set 설정'을 참고한다.

DB 클라이언트 Character Set 변수

DB 클라이언트가 사용할 Character Set을 설정한다. DB 종류에 따라 변수명이 다르며, Tibero는 TB_NLS_LANG, Oracle은 NLS_LANG, PostgreSQL은 PGCLIENTENCODING을 사용한다. 설정값에 따라 설치가 실패할 수 있으므로 아래 'Locale 및 Character Set 설정'을 참고한다.

********************************************************************************
* Install to Source Database (3/5)
********************************************************************************
Checking archived log mode... ok
Checking Oracle Version... ok : 19
Dropping ProSync objects... failed 00942읶 ORA-00942: 읶
별칭 설정 가이드
별칭 설정 가이드
별칭 설정 가이드

Locale 및 Character Set 설정

확인 항목

설치 시 DB 별 주의사항

Tibero

Oracle

PostgreSQL

export PATH=$PRS_HOME/bin:$PRS_HOME/client/bin:$PATH
export LD_LIBRARY_PATH=$PRS_HOME/lib:$PRS_HOME/client/lib:$LD_LIBRARY_PATH

데이터베이스 설정

ProSync 사용을 위한 Source Database별 설정 방법을 안내한다.

Source DB가 Tibero인 경우

Tibero 설정

데이터베이스 TIP 파일 설정

다음 항목을 TIP 파일에 설정한다.

_ENABLE_LOG_MINER=Y # ProSync가 사용하기 위한 추가적인 redo log를 남기기 위함
_SPAN_UNDO=N  # Tibero 6 FS07 이상에서 설정
_DDL_TRIGGER_ENABLE=Y # meta table 정보 관리를 위한 설정, 기본값은 Y이므로 설정하지 않아도 무방함

Archive 모드 설정

$ tbboot -t mount
$ tbsql sys/password
SQL> ALTER DATABASE ARCHIVELOG;
SQL> QUIT
$ tbdown
$ tbboot

DB 단위 Supplemental Log 설정

CREATE 문으로 생성된 테이블을 자동으로 동기화 대상에 등록하는 경우(AUTO_SYNC_ON_CREATE=Y), DB 단위 supplemental log가 설정되어 있어야 한다. _DDL_AUTO_SUPPLOG_CTBL을 TRUE로 설정하며, 운영 중인 DB에는 ALTER SYSTEM으로 바로 적용할 수 있다.

SQL> ALTER SYSTEM SET _DDL_AUTO_SUPPLOG_CTBL=TRUE;

ALTER SYSTEM으로 변경한 값은 DB 재기동 후 유지되지 않으므로, 다음 항목을 TIP 파일에도 추가한다.

_DDL_AUTO_SUPPLOG_CTBL=TRUE

자세한 내용은 동기화 대상 테이블 생성 및 등록 페이지의 '동기화 대상 자동 등록'을 참고한다.

TSC Standby 환경 구성

Tibero Standby Cluster(TSC) 환경에서 Standby DB를 Source로 사용하는 경우 Standby DB가 read-only 모드로 open되어 있어야 하는 등 추가 준비 사항이 있다. 또한 Failover 이후에는 승격된 Standby DB가 Redo를 생성하는 추출 대상이 되므로, 위의 TIP 파일 설정은 Primary DB와 Standby DB 모두(TAC-TSC는 모든 노드)에 적용해야 한다. 설치 config 파일의 USE_TSC=Y 설정과 사전 준비 사항은 페이지를 참고한다.


위와 같이 DB 단위로 supplemental log를 설정하면 CREATE 문으로 생성된 테이블을 자동으로 동기화 대상에 등록하는 기능(AUTO_SYNC_ON_CREATE=Y)을 사용할 수 있다. 설치 config 파일의 SUPP_LOG_LVL_ALL=Y 설정으로도 동일하게 설정할 수 있으며, 자세한 내용은 페이지의 '동기화 대상 자동 등록'을 참고한다.

AQ와 Archive Log 관련 파라미터는 다음과 같이 설정한다.

Redo Log 또는 Archive Log가 ASM Diskgroup에 저장되어 있는 경우, Extract 프로세스가 ASM 인스턴스에 접속하여 로그를 읽는다. 다음 조회 결과의 경로가 +로 시작하면 ASM 접속 정보 설정이 필요하다.

ASM 인스턴스 접속 별칭을 tnsnames.ora에 등록하고, SYSASM 권한을 가진 접속 계정을 준비한다. 설치 config 파일의 ASM_DB_NAME, ASM_USER, ASM_PWD 설정과 사전 준비 사항은 페이지를 참고한다.


TSC Standby Synchronization
동기화 대상 테이블 생성 및 등록
Source Oracle ASM 로그 추출

Source DB가 Oracle인 경우

Oracle 설정

Archive 모드 및 Supplemental Log 설정

파라미터 설정

ASM 환경 구성

Source DB가 PostgreSQL인 경우

PostgreSQL 설정

wal_level = logical 설정

$ sqlplus / as sysdba
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
SQL> ALTER DATABASE OPEN;
$ sqlplus / as sysdba
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=4 SCOPE=SPFILE;
SQL> ALTER SYSTEM SET OPEN_LINKS=4 SCOPE=SPFILE;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=1 SCOPE=SPFILE;
SELECT MEMBER FROM V$LOGFILE;
SHOW PARAMETER log_archive_dest
SHOW PARAMETER db_recovery_file_dest
$ cat postgresql.conf | grep wal_level
wal_level = logical                     # minimal, replica, or logical

데이터베이스 별칭(Alias) 확인

ProSync 설치를 시작하기 전에 각 데이터베이스의 SID 설정 파일을 확인하여 접속 가능한 별칭(Alias)을 설정한다.

Tibero가 Source DB 또는 Target DB로 사용되는 경우, 다음 경로에 별칭을 설정한다.


Oracle이 Source DB 또는 Target DB로 사용되는 경우, 다음 경로에 별칭을 설정한다.


PostgreSQL이 Source DB 또는 Target DB로 사용되는 경우, 다음 경로에 별칭을 설정한다.

pg_service.conf 경로는 PGSERVICEFILE 환경 변수 값으로 지정하거나 시스템 전역(pg_config --sysconfdir/pg_service.conf) 파일을 사용 또는 PGSYSCONFDIR 환경 변수 값으로 지정된 디렉터리의 pg_service.conf 파일을 사용할 수 있다.

주의

데이터베이스가 클러스터 환경인 경우, 각 인스턴스에 대한 설정이 모두 포함되어야 한다.

또한, 접속하는 모든 DB에 대한 별칭 설정이 필요하며, 각 DB에 대한 client 바이너리가 PATH에 있어야 한다.

Tibero 별칭 설정

일반 구성 예시

Oracle 별칭 설정

구성 예시

PostgreSQL 별칭 설정

구성 예시

$TB_HOME/client/config/tbdsn.tbr
SOURCE_SID=(
    (INSTANCE=(HOST=SOURCE DB IP)
              (PORT=SOURCE DB PORT)
              (DB_NAME=SOURCE DB NAME))
)

TARGET_SID=(
    (INSTANCE=(HOST=TARGET DB IP)
              (PORT=TARGET DB PORT)
              (DB_NAME=TARGET DB NAME))
)
$ORACLE_HOME/network/admin/tnsnames.ora
SOURCE_ALIAS=
(DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)
             (HOST=SOURCE DB IP)
             (PORT=SOURCE DB PORT))
    (CONNECT_DATA=(SERVER=DEDICATED)
                  (SERVICE_NAME=SOURCE DB SERVICE NAME))
)

TARGET_ALIAS=
(DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)
             (HOST=TARGET DB IP)
             (PORT=TARGET DB PORT))
    (CONNECT_DATA=(SERVER=DEDICATED)
                  (SERVICE_NAME=TARGET DB SERVICE NAME))
)
~/pg_service.conf
[SOURCE_ALIAS]
host=SOURCE DB IP
port=SOURCE DB PORT
dbname=SOURCE DB NAME

[TARGET_ALIAS]
host=TARGET DB IP
port=TARGET DB PORT
dbname=TARGET DB NAME

[EXAMPLE_FOR_REPLICATION]
host=SOURCE DB IP
port=SOURCE DB PORT
dbname=SOURCE DB NAME
replication=database