모든 페이지
1 / 3

Loading...

Loading...

Loading...

Agent 설치

1. 설치 파라미터 설정

Agent 프로세스를 설치하기 위해 각 계정의 설정 정보를 $PRS_HOME/install/prs_install_agent.cfg 파일에 작성한다.

설정 템플릿 예시

############################################
#
# ProSync Agent Configurations (Template)
#
############################################
# ID have to be unique in prs_instance.map.
# It will be checked when executing prs_install_agent.sh.
# Because of multi-agent environment,
# HOSTNAME(defined in /etc/hosts) is not recommended, IP will be better.
# AGENT_HOST[%d]=192.xxx.xxx.xxx

# AGENT_ID is unique key in prosync
# All nodes have to use same AGENT_ID in same agent.

AGENT_CNT=1
AGENT_ID_0=agent
AGENT_HOST_0=localhost
AGENT_PORT_0=7600
#AGENT_CM_GROUP_0=0
#AGENT_CM_ID_0=0

#AGENT_ID_1=agent2
#AGENT_HOST_1=localhost
#AGENT_PORT_1=7601
#AGENT_CM_GROUP_1=1
#AGENT_CM_ID_1=1

파라미터 설명

파라미터
설명

AGENT_CNT

설치할 Agent의 개수를 지정한다. 지정한 수만큼 아래 항목을 추가로 작성해야 한다. (필수)

아래는 4개의 Agent를 설정한 예시이다:


설정 파일(prs_install_agent.cfg)이 준비된 후에는 다음과 같이 설치 스크립트를 실행한다.

옵션
설명

옵션 없이 기본 설정 파일로 설치를 수행하는 경우

설치가 진행되면 시스템 환경 체크, 설정 파일 검증, agent 파일 생성 등의 단계가 자동으로 수행된다.

중간에 기존 설정 파일이 존재할 경우 덮어쓸지 여부를 묻는 메시지가 표시되며, 사용자가 Y/N으로 응답해야 한다.

설치 예시


설치가 완료되면 다음 디렉터리에서 결과 파일을 확인할 수 있다.

  • prs_agent_<agent_id>.cfg: 개별 Agent의 설정 파일

  • prs_instance.map: 전체 Agent들의 연결 정보를 관리하는 매핑 파일


CM Failover 기능을 사용하기 위해 AGENT_CM_GROUP[n] 및 AGENT_CM_ID[n]을 설정한 경우, 설치 시 $PRS_HOME/bin 경로에 prs_<AGENT_CM_ID>.sh 형식의 스크립트 파일이 자동 생성된다.

이 스크립트 파일에는 Agent 기동을 위한 환경 변수를 설정해야 하며, 반드시 TB_HOME, AGENT_ID 등을 환경에 맞게 수정해야 한다.

AGENT_ID_[n]

각 Agent의 고유 ID를 지정한다. 숫자로 시작할 수 없으며, 고유하게 식별 가능한 이름을 설정해야 한다. (필수)

AGENT_HOST_[n]

Agent가 설치될 호스트를 지정한다. Hostname보다 IP 주소를 사용하는 것을 권장한다. (필수)

AGENT_PORT_[n]

Agent가 사용할 포트를 지정한다. (필수)

AGENT_CM_GROUP_[n]

CM Failover 기능을 사용하는 경우, 해당 Agent가 속한 CM 그룹 이름을 지정한다.

AGENT_CM_ID_[n]

CM Failover 기능을 사용하는 경우, Agent가 연결될 CM의 ID를 지정한다. 각 그룹 내에서는 중복되지 않아야 하며, 그룹이 다를 경우 중복 가능하다.

-h

도움말 출력

-c

사용할 환경설정 파일 지정 (기본값: prs_install_agent.cfg)

-y

설정 예시

주의

AGENT_ID, AGENT_HOST, AGENT_PORT는 반드시 설정해야 하며, 중복되지 않도록 주의해야 한다.

멀티 노드 환경에서는 IP 기반 설정을 권장한다.

IP 주소 입력 시 VIP(Virtual IP) 대신 실제 IP 주소를 사용할 것을 권장한다.

2. Agent 설치

참고

prs_install_agent.sh는 독립 실행 스크립트이다. . prs_install_agent.sh처럼 dot-source 방식으로 실행하면 오류 처리 과정의 exit가 현재 사용자의 셸을 종료시킬 수 있으므로 반드시 ./prs_install_agent.sh로 실행한다.

사용 가능 옵션

예시

3. 설치 결과 확인

주요 파일 설명

생성된 설정 파일 예제

prs_instance.map 예시

prs_agent_agent1.cfg 예시

4. CM Failover 스크립트 설정

$PRS_HOME/bin/prs_0.sh 예시

기존 Agent 설정을 제거하고 새로 생성. prs_instance.map의 중복 항목도 교체됨

AGENT_CNT=4

AGENT_ID_0=agent1
AGENT_HOST_0=172.17.0.1
AGENT_PORT_0=7600
AGENT_CM_GROUP_0=CM1
AGENT_CM_ID_0=0

AGENT_ID_1=agent2
AGENT_HOST_1=172.17.0.2
AGENT_PORT_1=7601
AGENT_CM_GROUP_1=CM1
AGENT_CM_ID_1=1

AGENT_ID_2=agent3
AGENT_HOST_2=172.17.0.3
AGENT_PORT_2=7602
AGENT_CM_GROUP_2=CM2
AGENT_CM_ID_2=0

AGENT_ID_3=agent4
AGENT_HOST_3=172.17.0.4
AGENT_PORT_3=7603
AGENT_CM_GROUP_3=CM2
AGENT_CM_ID_3=1
$ cd $PRS_HOME/install
$ ./prs_install_agent.sh [option] [config file]
$ cd $PRS_HOME/install
$ ./prs_install_agent.sh
********************************************************************************
* Agent Install Step (1/4)
* Check System Parameters 
********************************************************************************
* Checking system type... 
Linux

* Checking PRS_HOME... 
PRS_HOME: /home/prosync/example

********************************************************************************
* Agent Install Step (2/4)
* Check install agent config file   [prs_install_agent.cfg]  
* Check Instance file               [prs_instance.map] 
********************************************************************************
* Checking configuration file... 
[/home/prosync/example/install/prs_install_agent.cfg] exists.

* Checking Agent configuration... 
parameter check for Agent[0] Started 
    AGENT_ID: agent1
    AGENT_HOST: 172.17.0.1
    AGENT_PORT: 7600
    AGENT_CM_GROUP: CM1
    AGENT_CM_ID: 0
parameter check for Agent[0] Done 
parameter check for Agent[1] Started 
    AGENT_ID: agent2
    AGENT_HOST: 172.17.0.2
    AGENT_PORT: 7601
    AGENT_CM_GROUP: CM1
    AGENT_CM_ID: 1
parameter check for Agent[1] Done 
parameter check for Agent[2] Started 
    AGENT_ID: agent3
    AGENT_HOST: 172.17.0.3
    AGENT_PORT: 7602
    AGENT_CM_GROUP: CM2
    AGENT_CM_ID: 0
parameter check for Agent[2] Done 
parameter check for Agent[3] Started 
    AGENT_ID: agent4
    AGENT_HOST: 172.17.0.4
    AGENT_PORT: 7603
    AGENT_CM_GROUP: CM2
    AGENT_CM_ID: 1
parameter check for Agent[3] Done 

* Checking prs_instance.map file... 
[/home/prosync/example/config/prs_instance.map] exists.

********************************************************************************
* Agent Install Step (3/4)
* Writing agent config file         [/home/prosync/example/install/prs_install_agent.cfg]  
* Writing Instance file             [/home/prosync/example/config/prs_instance.map] 
* Total Agent Cnt                   [4] 
********************************************************************************
* Writing all agents.. cnt: 4
* Writing Agent.. Index:           0
* Writing Agent.. AGENT_ID:        agent1
* Writing Agent.. AGENT_HOST:      172.17.0.1
* Writing Agent.. AGENT_PORT:      7600
* Writing Agent.. AGENT_CM_GROUP:  CM1
* Writing Agent.. AGENT_CM_ID:     0
* Writing Agent configuration... 
File already exists... 
[/home/prosync/example/config/prs_agent_agent1.cfg]
Want to Delete ? (Y/N)
n
Skip deleting...

* Writing Agent information... 
Agent information already exist
Want to Replace ? (Y/N)
n
Skipped... 


* Writing Agent.. Index:           1
* Writing Agent.. AGENT_ID:        agent2
* Writing Agent.. AGENT_HOST:      172.17.0.2
* Writing Agent.. AGENT_PORT:      7601
* Writing Agent.. AGENT_CM_GROUP:  CM1
* Writing Agent.. AGENT_CM_ID:     1
* Writing Agent configuration... 
/home/prosync/example/config/prs_agent_agent2.cfg not found. Writing files...
Done.

* Writing Agent information... 


* Writing Agent.. Index:           2
* Writing Agent.. AGENT_ID:        agent3
* Writing Agent.. AGENT_HOST:      172.17.0.3
* Writing Agent.. AGENT_PORT:      7602
* Writing Agent.. AGENT_CM_GROUP:  CM2
* Writing Agent.. AGENT_CM_ID:     0
* Writing Agent configuration... 
/home/prosync/example/config/prs_agent_agent3.cfg not found. Writing files...
Done.

* Writing Agent information... 


* Writing Agent.. Index:           3
* Writing Agent.. AGENT_ID:        agent4
* Writing Agent.. AGENT_HOST:      172.17.0.4
* Writing Agent.. AGENT_PORT:      7603
* Writing Agent.. AGENT_CM_GROUP:  CM2
* Writing Agent.. AGENT_CM_ID:     1
* Writing Agent configuration... 
/home/prosync/example/config/prs_agent_agent4.cfg not found. Writing files...
Done.

* Writing Agent information... 


* Creating var directory...
   * Already Created.
********************************************************************************
* Agent Install Step (4/4)
* Creating files for CM
********************************************************************************
AGENT_CM_ID detected
generating prs_0.sh...
PRS_HOME=/home/prosync/example
AGENT_ID=agent1
prs_0.sh has created in $PRS_HOME/bin/
AGENT_CM_ID detected
generating prs_1.sh...
PRS_HOME=/home/prosync/example
AGENT_ID=agent2
prs_1.sh has created in $PRS_HOME/bin/
AGENT_CM_ID detected
generating prs_0.sh...
PRS_HOME=/home/prosync/example
AGENT_ID=agent3
prs_0.sh has created in $PRS_HOME/bin/
AGENT_CM_ID detected
generating prs_1.sh...
PRS_HOME=/home/prosync/example
AGENT_ID=agent4
prs_1.sh has created in $PRS_HOME/bin/
Agent installation Done.
$ cd $PRS_HOME/config
$ ls -al
total 51
drwxr-xr-x  3 users users 4096 Apr 16 15:42 .
drwxr-xr-x 15 users users 4096 Apr 14 15:08 ..
-rw-r--r--  1 users users  367 Feb 27 19:22 prs_agent_agent1.cfg
-rw-r--r--  1 users users  367 Apr 16 15:32 prs_agent_agent2.cfg
-rw-r--r--  1 users users  367 Apr 16 15:32 prs_agent_agent3.cfg
-rw-r--r--  1 users users  367 Apr 16 15:32 prs_agent_agent4.cfg
-rw-r--r--  1 users users 1272 Apr 16 15:32 prs_instance.map
drwxr-xr-x  2 users users 4096 Apr 14 15:08 templates
-rw-r--r--  1 users users    5 Feb 27 13:06 variant
#--------------------------------------------------------
# ProSync Instances Map (prs_instance.map)
#
# Generated by Dummy Time: 04-16T14:22:21.920319
#

AGENT=(ID=agent1)(HOST=172.17.0.1)(PORT=7600)(CM_GROUP=CM1)(CM_ID=0)

#--------------------------------------------------------
# Appended by prs_install_agent.sh at Wed Apr 16 03:32:37 PM KST 2025
#

AGENT=(ID=agent2)(HOST=172.17.0.2)(PORT=7601)(CM_GROUP=CM1)(CM_ID=1)

#--------------------------------------------------------
# Appended by prs_install_agent.sh at Wed Apr 16 03:32:37 PM KST 2025
#

AGENT=(ID=agent3)(HOST=172.17.0.3)(PORT=7602)(CM_GROUP=CM2)(CM_ID=0)

#--------------------------------------------------------
# Appended by prs_install_agent.sh at Wed Apr 16 03:32:37 PM KST 2025
#

AGENT=(ID=agent4)(HOST=172.17.0.4)(PORT=7603)(CM_GROUP=CM2)(CM_ID=1)
                                                                          
################################################################################
# ProSync Agent Configurations (Template)
################################################################################
LISTENER_PORT=7600
LOG_LEVEL=3
LOG_DIR=/home/prosync/example/var/agent/agent1/log
LOG_BACKUP_DIR=/home/prosync/example/var/agent/agent1/log/backup
#!/bin/sh

export TB_HOME=
export PRS_HOME=/home/prosync/example
AGENT_ID=agent1
TIMEOUT_CNT=7
source $PRS_HOME/bin/prs_cm.sh
export logdir=$PRS_HOME/var

echo "------------------------------------------------------------" >> $logdir/cmagent.log
echo "`date +%Y/%m/%d\ %H:%M:%S` cm agent Start (Agent Command $1)" >> $logdir/cmagent.log
case $1 in
START)
    echo "start $TIMEOUT_CNT $AGENT_ID" >> $logdir/cmagent.log
    start $TIMEOUT_CNT $AGENT_ID
    rc=$?
    ;;
PROBE)
    echo "probe $TIMEOUT_CNT $AGENT_ID" >> $logdir/cmagent.log
    probe $TIMEOUT_CNT $AGENT_ID
    rc=$?
    ;;
DOWN)
    echo "stop $TIMEOUT_CNT $AGENT_ID" >> $logdir/cmagent.log
    stop $TIMEOUT_CNT $AGENT_ID
    rc=$?
    ;;
KILL)
    echo "stop $TIMEOUT_CNT $AGENT_ID" >> $logdir/cmagent.log
    stop $TIMEOUT_CNT $AGENT_ID
    rc=$?
    ;;
NOTI)
    rc=0
    ;;
COMMIT)
    echo "send $TIMEOUT_CNT $AGENT_ID ${@:2}" >> $logdir/cmagent.log
    send $TIMEOUT_CNT $AGENT_ID ${@:2}
    rc=$?
    ;;

*)
    ;;
esac
echo "result :  $rc" >> $logdir/cmagent.log
echo "`date +%Y/%m/%d\ %H:%M:%S` cm agent End  (Agent Command $1)" >> $logdir/cmagent.log


exit $rc

Instance 설치

$ cd $PRS_HOME/install
$ ./prs_install.sh [option] [config file] [list file]
$ cd $PRS_HOME/install
$ ./prs_install.sh

계정별 필요 권한

ProSync 설치를 위해서는 아래 세 가지 계정 정보가 필요하다.

  • PRS_USER

  • SRC_INSTALL_USER

  • TAR_INSTALL_USER

참고

DB가 Oracle 이면서 CDB에서 설치하는 경우, 공통 권한이 필요하다 (예: GRANT CONNECT TO INSTALL_USER CONTAINER=ALL;).

Log Miner를 사용하여 Source Oracle 추출하는 경우, SRC_INSTALL_USER는 sys 계정으로 설정해야 한다.

PRS_USER

ProSync가 내부적으로 운영에 사용하는 테이블들을 관리하기 위한 계정이다. Source DB와 Target DB 모두에 생성하며, 운영 시 사용된다.

Source DB가 Tibero인 경우

CONNECT                   RESOURCE                     ALTER SYSTEM
CREATE TABLE              ALTER ANY TABLE              DROP ANY TABLE
FLASHBACK ANY TABLE       SELECT ANY TABLE             LOCK ANY TABLE
SELECT ON V$DATABASE      SELECT ON V$INSTANCE         SELECT ANY DICTIONARY
EXECUTE ON SYS.SEAF

Source DB가 Oracle인 경우

CONNECT                       RESOURCE                        ALTER SYSTEM
CREATE TABLE                  ALTER ANY TABLE                 DROP ANY TABLE
FLASHBACK ANY TABLE           SELECT ANY TABLE                LOCK ANY TABLE
ADMINISTER DATABASE TRIGGER   SELECT ANY DICTIONARY           EXECUTE ON SYS.DBMS_AQADM
EXECUTE ON SYS.DBMS_AQ        EXECUTE ON SYS.DBMS_AQIN        AQ_ADMINISTRATOR_ROLE
SELECT ON SYS.USER$           EXECUTE ON SYS.DBMS_AQADM_SYS
SELECT ANY TRANSACTION        SELECT  ON SYS.ENC$             SELECT ON SYS.OBJ$

# (12c 이상)
LOGMINING                     CREATE ANY DIRECTORY
READ, WRITE ON DIRECTORY PRS_DICT_$INSTANCE_ID

# 권한 외 필요한 사전 설정
ALTER USER PRS_USER QUOTA UNLIMITED ON PRS_TS_NAME
CREATE OR REPLACE DIRECTORY PRS_DICT AS DICT_FILE_DIR

Target DB가 Tibero 또는 Oracle이고 DML 동기화만 사용하는 경우

CREATE SESSION           ALTER SESSION
CREATE TABLE             CREATE SEQUENCE            CREATE VIEW
CREATE SYNONYM           CREATE PROCEDURE
INSERT ANY TABLE         UPDATE ANY TABLE           DELETE ANY TABLE
SELECT ANY TABLE         SELECT ANY SEQUENCE        ALTER ANY SEQUENCE
SELECT ANY DICTIONARY

# 권한 외 필요한 사전 설정
ALTER USER PRS_USER QUOTA UNLIMITED ON PRS_TS_NAME

참고

PRS_TARGET_MIN_PRIVILEGE=Y 로 설치하는 경우 부여되는 권한이다. CREATE 계열은 PRS_USER 자기 스키마 범위이고 ANY 범위의 DDL 권한이 없으므로, 이 구성에서는 DDL 동기화를 사용할 수 없다. SELECT ANY SEQUENCE, ALTER ANY SEQUENCE 는 시퀀스 동기화에 사용된다.

Target DB가 Tibero 또는 Oracle인 경우

DBA

Target DB가 PostgreSQL인 경우

SUPERUSER

SRC_INSTALL_USER

설치 과정에서만 사용하는 계정으로, PRS_USER 계정을 생성하고 권한을 부여하기 위한 역할을 한다. 설치 완료 후에는 운영과 무관하다.

SRC_INSTALL_USER와 마찬가지로, 설치 과정에서만 사용하는 계정이다.


Instance를 설치하기 위해 각 계정의 설정 정보를 $PRS_HOME/install/prs_install.cfg 파일에 작성한다.

파라미터
설명

TSC 소스의 실제 설치 구성은 의 설치 구성 절을 참고한다.

아래는 파라미터를 설정한 예시이다.


설정 파일(prs_install.cfg)이 준비된 후에는 다음과 같이 설치 스크립트를 실행한다.

옵션
설명

옵션 없이 기본 설정 파일로 설치를 수행하는 경우


설치가 완료되면 다음 디렉터리에서 결과 파일을 확인할 수 있다.

  • <instance_id>_ext1.cfg: ext process의 설정 파일

  • <instance_id>_apply1.cfg: apply process의 설정 파일

  • <instance_id>_llob.cfg: llob process의 설정 파일

Instance 설치가 성공적으로 완료되면, $PRS_HOME/var 디렉토리 하위에 다음과 같은 서브 디렉토리가 자동으로 생성된다:

  • admin

  • instance_id

이 디렉토리들 하위에는 해당 프로세스의 실행 로그 파일이나 dump 파일, prosync 운영에 필요한 파일들이 저장된다.

설치가 완료되면 Source DB 및 Target DB에 ProSync 운영에 필요한 메타 테이블과 객체들이 생성된다.

아래는 정상적으로 생성되었는지 확인해야 할 주요 메타 테이블 및 객체 목록이다.

  • 동기화 및 추출 이력 관리 테이블

테이블명
설명
  • 동기화 및 추출 관련 PACKAGE 및 TRIGGER

객체명
설명
  • 동기화 및 추출 이력 관리 테이블

테이블명
설명

ProSync Manager 에서 instance 설치 시 tablespace 이름에 소문자 알파벳을 사용한 경우, 이후에 ProSync install 스크립트를 사용해 재설치 진행 시 사전에 관련 tablespace의 삭제가 필요하다.

PRS_PWD

PRS_USER의 암호. 설정하지 않으면 설치 중에 입력받는다.

PRS_TS_NAME

ProSync 운영 데이터를 저장할 테이블스페이스 이름. PostgreSQL의 경우, 파라미터 미지원. (기본값: [INSTANCE_ID]_ts)

PRS_TS_FILE

ProSync 운영 데이터를 저장할 테이블스페이스 파일명. PostgreSQL의 경우, 파라미터 미지원. (기본값:[INSTANCE_ID]_ts.dtf)

PRS_TS_SIZE

ProSync 운영 데이터를 저장할 테이블스페이스 크기. PostgreSQL의 경우, 파라미터 미지원. (기본값: 1G)

PRS_SKIP_USER_CREATE

ProSync 운영에 사용되는 데이터베이스 사용자를 생성하지 않고 기존 사용자를 사용할 경우 설정 (기본값: N)

PRS_TARGET_MIN_PRIVILEGE

Target DB 사용자에게 최소 권한만 부여해 DML 동기화만 수행할 경우 설정 (기본값: N)

PRS_LOG_DIR

ProSync 운영 중 생성되는 로그 파일의 저장 경로 (기본값: $PRS_HOME/var/{INSTANCE_ID}/log)

LOG_BACKUP_DIR

이전 로그 파일을 저장할 경로. 설정하지 않으면 프로세스별로 $PRS_HOME/var/{INSTANCE_ID}/log/ext_backup, log/apply_backup, log/llob_backup이 기본값으로 사용되며, 사용자가 명시하면 해당 경로로 대체된다.

CREATE_DSN_FILE

ProSync가 사용할 tbdsn.tbr/tnsnames.ora/pg_service.conf 파일을 생성하려는 경우 설정(기본값: N)

DSN_DIR

ProSync가 DB 접속에 사용할 tbdsn.tbr/tnsnames.ora/pg_service.conf 파일이 위치한 경로. 설정하지 않거나 존재하지 않는 경우, 시스템 기본값 사용

DSN_FILE

ProSync가 DB 접속에 사용할 tbdsn.tbr/pg_service.conf 파일 명. 설정하지 않거나 존재하지 않는 경우, 시스템 기본값 사용

AGENT_LIST_DELIMITER

Agent 정보가 2개 이상일 경우 구분자로 사용할 문자. 현재는 Agent 1개 사용 권장

EXT_CNT

Ext 프로세스 수. Source DB 수와 동일하게 설정 (필수 항목)

EXT_AGENT_ID_LIST

Ext 프로세스에 연결할 Agent ID. EXT_CNT 수만큼 입력 (필수 항목)

APPLY_PORT

Apply 프로세스의 포트 번호 (필수 항목)

APPLY_AGENT_ID_LIST

Apply 프로세스에 연결할 Agent ID (필수 항목)

LLOB_PORT

Llob 프로세스의 포트 번호 (필수 항목)

LLOB_AGENT_ID_LIST

Llob 프로세스에 연결할 Agent ID (필수 항목)

SRC_DB_TYPE

Source DB 종류. (TIBERO / ORACLE / POSTGRESQL) (필수 항목)

SRC_DB_NAME

Source DB의 별칭(Alias). PostgreSQL의 경우 pg_service.conf에 정의한 service 이름을 입력한다. (필수 항목)

USE_TSC=Y인 경우 읽기 가능한 Standby 별칭을 지정한다.

USE_TSC

Tibero TSC Standby를 소스로 사용할지 지정한다. 기본값은 N이며, SRC_DB_TYPE=TIBERO에서만 사용할 수 있다.

SRC_PRIMARY_DB_NAME

쓰기 가능한 Primary 별칭. USE_TSC=Y이면 필수이며 SRC_DB_NAME과 달라야 한다.

SRC_PRIMARY_DB_ALIAS_N

TAC-TSC에서 SRC_DB_ALIAS_N에 대응하는 Primary 인스턴스 직결 별칭. 선택 항목이며 사용 시 0부터 SRC_DB_CNT-1까지 지정한다.

SRC_INSTALL_USER

Source DB 접속용 계정. 설치에 필요한 권한을 갖춘 계정이어야 함. (필수 항목)

SRC_INSTALL_PWD

SRC_INSTALL_USER의 암호. 설정하지 않으면 설치 중 입력받음.

AUTO_ADD_SUPP_LOG

동기화 대상 테이블에 supplemental log를 자동 추가할지 여부. (기본값: Y)

SRC_SKIP_TS_CREATE

테이블스페이스를 생성하지 않고 기존 것을 사용할 경우 설정. (기본값: N)

SRC_DB_CNT

클러스터 환경에서 노드 수. (기본값: 1)

SRC_DB_REAL_NAME

Source DB의 DB Name.

SRC_DB_IP

Source DB의 IP 주소.

SRC_DB_PORT

Source DB의 포트 번호.

SRC_DB_ALIAS_[n]

클러스터 환경에서 각 노드의 DB 별칭. SRC_DB_CNT 수만큼 입력.

SUPP_LOG_LVL_ALL

supplemental log를 걸 때 level 설정 여부. Y 설정 시 database level로 설정됨. (기본값: N )

AUTO_SYNC_ON_CREATE

ProSync 설치 이후 CREATE 문으로 생성된 테이블 및 시퀀스를 자동으로 동기화 대상에 등록할지 여부를 지정 (기본값: N)

USE_LOGMNR

Oracle LogMiner를 통해 로그를 추출할 경우 설정. (기본값: N)

DICT_FILE_DIR

Oracle LogMiner 사용 시 dict 파일 저장 위치. Oracle 유저가 접근 가능해야 함.

PRS_EXT_IP

MySQL 전용 파라미터. 현재 배포 빌드에서는 MySQL을 지원하지 않으므로 사용하지 않는다.

TAR_DB_TYPE

Target DB 종류. (TIBERO / ORACLE / POSTGRESQL) (필수 항목)

TAR_DB_NAME

Target DB 별칭(Alias). (필수 항목)

TAR_INSTALL_USER

Target DB 접속용 계정. 설치 권한을 갖춘 계정이어야 함. (필수 항목)

TAR_INSTALL_PWD

TAR_INSTALL_USER의 암호. 설정하지 않으면 설치 중 입력받음.

TAR_SKIP_TS_CREATE

테이블스페이스를 생성하지 않고 기존 것을 사용할 경우 설정. (기본값: N)

TAR_DB_REAL_NAME

Target DB의 DB Name.

TAR_DB_IP

Target DB의 IP 주소.

TAR_DB_PORT

Target DB의 포트 번호.

PRS_APPLY_IP

MySQL 전용 파라미터. 현재 배포 빌드에서는 MySQL을 지원하지 않으므로 사용하지 않는다.

GROUP_NUM

Multi-Grouping 모드에서 replay group 수. (기본값: 1)

USE_TDE

TDE_WALLET_PWD를 수동으로 입력받기 위한 설정. Y로 설정 시 설치 중 사용자 입력 요구.

ASM_DB_NAME

Source Oracle이 ASM을 사용하는 경우 접속할 ASM 인스턴스 별칭(Alias). ASM 경로(+DISKGROUP/...)의 redo/archive log 접근에 필요.

ASM_USER

ASM 인스턴스 접속 계정.

ASM_PWD

ASM_USER의 암호. 설치 시 암호화되어 $PRS_HOME/var/{INSTANCE_ID}/.wallet_asm에 저장되며, 생성되는 Extract config에는 #encrypted로 기입된다.

prs_adm.cfg: admin process의 설정 파일

PRS_DD_ENC

암호화된 컬럼 관련 정보

PRS_DD_SEQ_TBL

Data Dictionary에 대한 시퀀스와 그 때의 오브젝트 정보를 가지고 있다. 이 테이블은 추가적으로 drop된 여부까지 판단한다.

PRS_DD_SGMT

동기화 대상 테이블의 세그먼트 ID 정보를 저장

PRS_DD_TBL

동기화 대상 테이블 이름 정보를 저장

PRS_DD_USR

Source DB 사용자 정보를 저장

PRS_DD_SEQ

Data Dictionary용 시퀀스

PRS_DICT_HIST

TSN 기준 Dictionary 파일 이름 저장

PRS_DUMMY_TBL

Dummy log를 생성시키기 위해 dummy dml을 수행하는 테이블

PRS_IMPORTED_ARCHIVE_LOG

Oracle 로그마이너 모드에서 특정 archive log 지정 시 사용

PRS_INSTALL_HIST

설치한 유저 정보 및 설치 시간 저장

PRS_IPARAM

ProSync 파라미터 정보를 저장

PRS_LOGMNR_INFO

Oracle 로그마이너 추출 관련 정보를 저장

PRS_OBJ_LIST

동기화 대상 오브젝트 ID 정보를 저장

PRS_TXINFO

트랜잭션 정보 저장 테이블

PRS_LCT

반영 스레드가 마지막으로 반영한 TX의 정보를 저장

PRS_COMMITTED_TX_LIST

Source DB에서 커밋된 TX 정보 저장

INSTANCE_ID

ProSync를 설치하기 위한 ID. 사용자가 관리 목적으로 임의로 지정한 ID를 입력한다. 이 값은 Tablespace name으로 유효한 형식이어야 하며, 숫자로 시작할 수 없다. (필수 항목)

PRS_USER

-h

도움말 출력

-c

사용할 환경설정 파일 지정 (기본값: prs_install.cfg)

-l

PRS_DDL_HIST

DDL 발생에 따른 DD 이미지 정보 관련 히스토리 테이블

PRS_DD_COL

동기화 대상 테이블의 컬럼 정보

PRS_DD_CON

PRS_DD_META

PRS_DDL_TRG가 이미지 관리를 위해 사용

PRS_DUMMY

Dummy 부하 생성을 위한 PACKAGE

PRS_DDL_TRG

PRS_INSTALL_HIST

설치 정보 저장

PRS_CONST_HIST

반영된 리두/아카이브 로그 정보 저장

PRS_CONST_SEQ

TSC Standby Synchronization

Tibero인 경우

Oracle인 경우

주의

Oracle PDB에서 설치하는 경우, CDB로 container를 변경할 수 있는 common user여야 하며 CDB나 PDB에 위 권한이 없는 경우 설치에 실패할 수 있다.

참고

Oracle CDB에서 설치하는 경우, 사용자 생성 시 C## 접두어 제약이 존재한다. 설치 과정에서 이 제약을 해제하기 위해 ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE; 명령을 실행하며, 해당 명령은 SYS 계정으로 접속한 세션에서만 수행 가능하므로, CDB 환경에서는 SYS 계정으로 설치를 진행해야 한다.

PostgreSQL인 경우

TAR_INSTALL_USER

Tibero인 경우

Oracle인 경우

For Tibero, Oracle

설치 시 PRS_TARGET_MIN_PRIVILEGE=Y 설정하여 Instance 설치하는 경우, TAR_INSTALL_USER 에게 ALTER USER 권한을 추가적으로 부여해야 한다.

PostgreSQL인 경우

1. 설치 파라미터 설정

설정 템플릿 예시

설치 파라미터

참고

특수문자 사용 시 이스케이프 처리가 필요하다.

(예: PRS_PWD="example123!@#" -> PRS_PWD=\"example123\!\@\#\")

또한, IP 주소 입력 시 VIP(Virtual IP) 대신 실제 IP 주소를 사용할 것을 권장한다.

설정 예시

2. Instance 설치

주의 — 재실행 시 기존 운영 데이터 삭제

prs_install.sh를 운영 중인 기존 인스턴스 환경에서 다시 실행하면 Source의 ProSync 내부 객체와 사용자, 테이블스페이스가 삭제 후 재생성되고, Target의 PRS_LCT, PRS_COMMITTED_TX_LIST, PRS_CONST_HIST 등 복구에 필요한 메타 테이블이 삭제되며, 초기 동기화 기준점이 새로 생성된다.

따라서 prs_install.sh 재실행은 패치나 장애 복구 수단이 아니다. 패치는 패치 가이드를 따르고, 재설치가 불가피한 경우 프로세스를 정지하고 DB 메타 테이블과 config, var 디렉터리, wallet 파일을 백업한 뒤 진행한다.

참고

prs_install.sh는 독립 실행 스크립트이다. . prs_install.sh처럼 dot-source 방식으로 실행하면 오류 처리 과정의 exit가 현재 사용자의 셸을 종료시킬 수 있으므로 반드시 ./prs_install.sh로 실행한다.

사용 가능한 옵션

설치 예시

참고

prs_install.sh 파일을 실행한 후 prs_install.cfg에 패스워드 옵션을 입력하지 않은 경우 각 계정에 대한 패스워드를 순서대로 입력해야 한다.

주의

prs_install.sh 파일 실행 시, 메타 테이블 및 트리거 생성 중 DDL이 발생하는 경우 이를 감지하지 못할 수 있으며 이후 동기화에 실패할 수 있다.

설치 결과 예시

참고

설치 중 오류가 발생하면, 오류가 발생한 지점과 관련된 메시지를 출력한 뒤 설치를 중단한다.

자세한 오류 내용은 디버깅을 위해 로그 파일(prs_install.log)에 기록되며, 이를 통해 원인을 확인할 수 있다.

3. 설치 결과 확인

주요 파일 설명

생성된 설정 파일 예제

prs_instance.map 예시

instance_ext1.cfg 예시

참고 — PRS_PWD=#encrypted의 의미

#encrypted는 암호화된 암호 문자열이 아니라, 실제 암호를 wallet 파일에서 읽으라는 표시(sentinel)다. 실제 DB 접속 암호는 var/<instance>/.wallet에 암호화되어 저장되며, TDE wallet 암호는 var/<instance>/.wallet_tde, HSM PIN은 var/<instance>/.wallet_tde_hsm에 저장된다.

따라서 설정 파일(config)만 다른 노드로 복사해서는 프로세스를 기동할 수 없으며 wallet 파일을 함께 이관해야 한다. wallet 파일은 백업 대상에 포함해야 하며, DB 비밀번호 변경 시에는 wallet을 다시 생성해야 한다.

instance_apply1.cfg 예시

instance_llob.cfg 예시

prs_adm.cfg 예시

Var 디렉토리 확인

메타 테이블 생성 확인

Source DB

Target DB

ProSync 운영을 위해 소스 및 Target DB에 생성할 사용자 이름

동기화 리스트 파일 지정 (기본값: prs_obj_group1.list)

DB constraint 정보를 저장

DD 이미지 관리를 위한 Trigger

반영된 리두/아카이브 로그 정보의 시퀀스 저장

CONNECT                          CREATE USER                       DROP USER
CREATE TABLESPACE                DROP TABLESPACE                   ALTER DATABASE
ALTER SYSTEM                     ADMINISTER DATABASE TRIGGER       ALTER ANY TABLE
ALTER ANY TRIGGER                EXECUTE ANY PROCEDURE             DROP ANY PROCEDURE
DROP ANY TABLE                   DROP ANY TRIGGER                  DROP ANY SEQUENCE
GRANT ANY ROLE                   GRANT ANY PRIVILEGE               SELECT ANY TABLE
INSERT ANY TABLE                 UPDATE ANY TABLE                  SELECT ON V$LOG
SELECT ON V$PARAMETERS
SELECT ON V$DATABASE WITH GRANT OPTION
SELECT ON V$INSTANCE WITH GRANT OPTION
SELECT ON SYS._DD_OBJ WITH GRANT OPTION
SELECT ON SYS._DD_USER WITH GRANT OPTION
SELECT ON SYS._DD_IDX WITH GRANT OPTION
SELECT ON SYS._DD_IDXPART WITH GRANT OPTION
SELECT ON SYS._DD_TBL WITH GRANT OPTION
SELECT ON SYS._DD_TBLPART WITH GRANT OPTION
SELECT ON SYS._DD_TBLSUBPART WITH GRANT OPTION
SELECT ON SYS._DD_COL WITH GRANT OPTION
SELECT ON SYS._DD_ICOL WITH GRANT OPTION
EXECUTE ON SYS.SEAF WITH GRANT OPTION
CONNECT                     CREATE SESSION                ALTER SESSION
CREATE USER                 DROP USER                     CREATE TABLESPACE
DROP TABLESPACE             ALTER DATABASE                ALTER SYSTEM
ADMINISTER DATABASE TRIGGER ALTER ANY TABLE               ALTER ANY TRIGGER
EXECUTE ANY PROCEDURE       DROP ANY PROCEDURE            DROP ANY TABLE
DROP ANY TRIGGER            DROP ANY SEQUENCE             GRANT ANY ROLE
GRANT ANY PRIVILEGE         SELECT ANY TABLE              INSERT ANY TABLE
UPDATE ANY TABLE            ALTER USER                    SELECT ON SYS.V_$PARAMETER
SELECT ON SYS.V_$DATABASE   SELECT ON SYS.V_$INSTANCE     SELECT ON SYS.V_$LOG
SELECT ON SYS.USER$ WITH GRANT OPTION
SELECT  ON SYS.ENC$ WITH GRANT OPTION
SELECT ON SYS.OBJ$ WITH GRANT OPTION
EXECUTE ON SYS.DBMS_AQ WITH GRANT OPTION
EXECUTE ON SYS.DBMS_AQIN WITH GRANT OPTION
EXECUTE ON SYS.DBMS_AQADM WITH GRANT OPTION
EXECUTE ON SYS.DBMS_AQADM_SYS WITH GRANT OPTION
EXECUTE ON SYS.DBMS_LOGMNR WITH GRANT OPTION
EXECUTE ON SYS.DBMS_LOGMNR_D WITH GRANT OPTION
EXECUTE ON SYS.DBMS_LOGMNR_INTERNAL WITH GRANT OPTION

EXECUTE DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE('MANAGE_ANY', 'PRS_INSTALL_USER')
-- PDB의 경우 common user에 대해 수행 필요
SET CONTAINER
SUPERUSER
CONNECT                  CREATE USER               DROP USER
CREATE TABLESPACE        DROP TABLESPACE           EXECUTE ANY PROCEDURE
DROP ANY PROCEDURE       DROP ANY TABLE            DROP ANY SEQUENCE
GRANT ANY ROLE           GRANT ANY PRIVILEGE       SELECT ANY TABLE
INSERT ANY TABLE         SELECT ANY SEQUENCE       SELECT ON V$PARAMETERS
CONNECT                  CREATE USER               DROP USER
CREATE TABLESPACE        DROP TABLESPACE           EXECUTE ANY PROCEDURE
DROP ANY PROCEDURE       DROP ANY TABLE            DROP ANY SEQUENCE
GRANT ANY ROLE           GRANT ANY PRIVILEGE       SELECT ANY TABLE
INSERT ANY TABLE         SELECT ANY SEQUENCE       SELECT ON SYS.V_$PARAMETER
SUPERUSER
############################################
#
# ProSync Installation Parameters
#
############################################

# (Mandatory)
INSTANCE_ID=
PRS_USER=prosync
PRS_PWD=

# (Optional)
#PRS_TS_NAME=
#PRS_TS_FILE=
#PRS_TS_SIZE=
#PRS_SKIP_USER_CREATE=N
#PRS_TARGET_MIN_PRIVILEGE=N
#PRS_LOG_DIR=
#LOG_BACKUP_DIR=
#CREATE_DSN_FILE=N
#DSN_DIR=
#DSN_FILE=#need DSN_DIR

############################################
#
# ProSync Processes Informations for Instance Map
#
############################################
### (Optional)
AGENT_LIST_DELIMITER=,

### (Mandatory)
# Ext process
## Ext cnt must be the same as SRC_DB_CNT
EXT_CNT=
EXT_AGENT_ID_LIST_0=agent1
#EXT_AGENT_ID_LIST_1=agent1,agent2

# Apply process
APPLY_PORT=7620
APPLY_AGENT_ID_LIST=agent1

# Llob process
LLOB_PORT=7630
LLOB_AGENT_ID_LIST=agent1

############################################
#
# Source database informations
#
############################################

# (Mandatory)
SRC_DB_TYPE=TIBERO
SRC_DB_NAME=
SRC_INSTALL_USER=
SRC_INSTALL_PWD=

# (Optional)
#AUTO_ADD_SUPP_LOG=Y
#SRC_SKIP_TS_CREATE=N
#AUTO_SYNC_ON_CREATE=N

# (for Tibero Standby Cluster source synchronization)
# When USE_TSC=Y, set SRC_DB_NAME to the readable standby alias and
# SRC_PRIMARY_DB_NAME to the writable primary alias.
#USE_TSC=N
#SRC_PRIMARY_DB_NAME=

# (for TAC-TSC) per-instance writable primary aliases, parallel to
# SRC_DB_ALIAS_N.
#SRC_PRIMARY_DB_ALIAS_0=
#SRC_PRIMARY_DB_ALIAS_1=

# (Number Of Database Instances)
#SRC_DB_CNT=1

# (Dsn)
#SRC_DB_REAL_NAME=
#SRC_DB_IP_0=
#SRC_DB_PORT_0=
#SRC_DB_IP_1=
#SRC_DB_PORT_1=

# (for Cluster, only Extract Needed)
#SRC_DB_ALIAS_0=
#SRC_DB_ALIAS_1=

# (for ORACLE DB Only)
#SUPP_LOG_LVL_ALL=N

# (for Oracle Logminer only)
# Oracle 11g or less, use utl_file_dir instead of DICT_FILE_DIR
#USE_LOGMNR=Y
#DICT_FILE_DIR=

# (for Oracle ASM only)
# Required when using ASM redo files (+DISKGROUP/...)
#ASM_DB_NAME=
#ASM_USER=
#ASM_PWD=

# (for MySQL only)
#PRS_EXT_IP=

############################################
#
# Target database informations
#
############################################

# (Mandatory)
TAR_DB_TYPE=TIBERO
TAR_DB_NAME=
TAR_INSTALL_USER=
TAR_INSTALL_PWD=

# (Optional)
#TAR_SKIP_TS_CREATE=N

# (Number Of Database Instances)
#TAR_DB_CNT=1

# (Dsn)
#TAR_DB_REAL_NAME=
#TAR_DB_IP_0=
#TAR_DB_PORT_0=
#TAR_DB_IP_1=
#TAR_DB_PORT_1=

# (for MySQL only)
#PRS_APPLY_IP=

# (for multi thread)
#GROUP_NUM=1

# (for TDE(transparent data encryption) synchronization)
#USE_TDE=N
############################################
#
# ProSync Installation Parameters
#
############################################

# (Mandatory)
INSTANCE_ID=instance
PRS_USER=prosync_user
PRS_PWD=prosync_user_password

# (Optional)
#PRS_TS_NAME=
#PRS_TS_FILE=
#PRS_TS_SIZE=
#PRS_SKIP_USER_CREATE=N
#PRS_TARGET_MIN_PRIVILEGE=N
#PRS_LOG_DIR=
#LOG_BACKUP_DIR=
#CREATE_DSN_FILE=N
#DSN_DIR=
#DSN_FILE=#need DSN_DIR

############################################
#
# ProSync Processes Informations for Instance Map
#
############################################
### (Optional)
AGENT_LIST_DELIMITER=,

### (Mandatory)
# Ext process
## Ext cnt must be the same as SRC_DB_CNT
EXT_CNT=1
EXT_AGENT_ID_LIST_0=agent1
#EXT_AGENT_ID_LIST_1=agent1,agent2

# Apply process
APPLY_PORT=7620
APPLY_AGENT_ID_LIST=agent1

# Llob process
LLOB_PORT=7630
LLOB_AGENT_ID_LIST=agent1

############################################
#
# Source database informations
#
############################################

# (Mandatory)
SRC_DB_TYPE=TIBERO
SRC_DB_NAME=src_tibero
SRC_INSTALL_USER=sys
SRC_INSTALL_PWD=tibero

# (Optional)
#AUTO_ADD_SUPP_LOG=Y
#SRC_SKIP_TS_CREATE=N
#AUTO_SYNC_ON_CREATE=N

# (for Tibero Standby Cluster source synchronization)
# When USE_TSC=Y, set SRC_DB_NAME to the readable standby alias and
# SRC_PRIMARY_DB_NAME to the writable primary alias.
#USE_TSC=N
#SRC_PRIMARY_DB_NAME=

# (for TAC-TSC) per-instance writable primary aliases, parallel to
# SRC_DB_ALIAS_N.
#SRC_PRIMARY_DB_ALIAS_0=
#SRC_PRIMARY_DB_ALIAS_1=

# (Number Of Database Instances)
#SRC_DB_CNT=1

# (Dsn)
#SRC_DB_REAL_NAME=
#SRC_DB_IP_0=
#SRC_DB_PORT_0=
#SRC_DB_IP_1=
#SRC_DB_PORT_1=

# (for Cluster, only Extract Needed)
#SRC_DB_ALIAS_0=
#SRC_DB_ALIAS_1=

# (for ORACLE DB Only)
#SUPP_LOG_LVL_ALL=N

# (for Oracle Logminer only)
# Oracle 11g or less, use utl_file_dir instead of DICT_FILE_DIR
#USE_LOGMNR=Y
#DICT_FILE_DIR=

# (for Oracle ASM only)
# Required when using ASM redo files (+DISKGROUP/...)
#ASM_DB_NAME=
#ASM_USER=
#ASM_PWD=

# (for MySQL only)
#PRS_EXT_IP=

############################################
#
# Target database informations
#
############################################

# (Mandatory)
TAR_DB_TYPE=TIBERO
TAR_DB_NAME=tar_tibero
TAR_INSTALL_USER=sys
TAR_INSTALL_PWD=tibero

# (Optional)
#TAR_SKIP_TS_CREATE=N

# (Number Of Database Instances)
#TAR_DB_CNT=1

# (Dsn)
#TAR_DB_REAL_NAME=
#TAR_DB_IP_0=
#TAR_DB_PORT_0=
#TAR_DB_IP_1=
#TAR_DB_PORT_1=

# (for MySQL only)
#PRS_APPLY_IP=

# (for multi thread)
#GROUP_NUM=1

# (for TDE(transparent data encryption) synchronization)
#USE_TDE=N
$ cd $PRS_HOME/install
$ ./prs_install.sh [option] [config file] [list file]
$ cd $PRS_HOME/install
$ ./prs_install.sh
********************************************************************************
* Check System Parameters (1/5)
********************************************************************************
Checking system type... Linux
Checking PRS_HOME... /home/prosync/example
Checking TB_HOME... /home/tibero/tibero7
Checking ORACLE_HOME... not found
Checking psql ... available
Checking psql service ...not found

********************************************************************************
* Check Installation Parameters (2/5)
********************************************************************************
Checking configuration file... ok
Checking prs_instance.map file... ok
Checking Instance Id from prs_instance.map...
* instance information for instance was not found. It will be written in this script...
ok
Checking processes infos...
* Checking Ext processes Informations... EXT_CNT: 1
* Delimiter: [,]
   * Ext[0] process's Agent Id List
       * Agent ID[agent1]
       * [agent1] found.
* Checking Apply process Informations...
* Checking Apply Port..
   * APPLY_PORT=[7620]
* Checking Apply process's Agent Id List..
       * Agent ID[agent1]
       * [agent1] found.
* Checking Llob process Informations...
* Checking Llob Port..
   * LLOB_PORT=[7630]
* Checking Llob process's Agent Id List..
       * Agent ID[agent1]
       * [agent1] found.

Checking INSTANCE_ID... instance
Checking PRS_USER... prosync_user
Checking PRS_TS_NAME... instance_ts
Checking PRS_TS_FILE... instance_ts.dtf
Checking PRS_TS_SIZE... 1G
Checking PRS_EXT_IP... %
Checking PRS_APPLY_IP... %
Checking SRC_DB_CNT... 1
Checking SRC_DB_TYPE... TIBERO
Checking SRC_INSTALL_USER... sys
Checking SRC_DB_NAME... src_tibero
Checking source connection(1/2)... ok
Checking source connection(2/2)... ok
Checking TAR_DB_TYPE... TIBERO
Checking TAR_INSTALL_USER... sys
Checking TAR_DB_NAME... tar_tibero
Checking target connection [tar_tibero](1/2)... ok
Checking target connection [tar_tibero](2/2)... ok

********************************************************************************
* Install to Source Database (3/5)
********************************************************************************
Checking archived log mode... ok
Checking log mining parameters [src_tibero]... ok
Get Archive log directory [src_tibero]... ok
Get Archive log format [src_tibero]... ok
Dropping ProSync objects... ok
Dropping ProSync tablespace... DROP TABLESPACE instance_ts INCLUDING CONTENTS AND DATAFILES;

done

ok
Creating ProSync tablespace... ok
Dropping ProSync user... ok
Creating ProSync user... ok
Granting privileges... ok
Granting privileges for trigger... ok
Creating ProSync internal tables... ok
Creating ProSync internal package... ok
Creating ProSync internal trigger... ok
Prosync user prosync_user to uppercase PROSYNC_USER... ok
Checking source object file(group num : 1)... ok
Building source object for TEST.%... ok
Building source object for TEST%.%... ok
Adding table supplemental log... 6, and one for prosync
  "PROSYNC_USER"."PRS_DUMMY_TBL" : Supplemental logging set
  "TEST"."T1" : supplemental log already exists, continue.
  "TEST"."T2" : supplemental log already exists, continue.
  "TEST"."T3" : supplemental log already exists, continue.
  "TEST"."T4" : supplemental log already exists, continue.
  "TEST"."T5" : supplemental log already exists, continue.
  prosync_user.PRS_DUMMY_TBL : supplemental log already exists, continue.
Counting total source objects... 6
Generating initial DDL history... ok
Checking initial DDL history... ok
Insert default value in PRS_DUMMY_TBL...ok
Querying NLS_CHARACTERSET... UTF8
Querying NLS_NCHAR_CHARACTERSET... UTF16
Switching logfile... ok
Querying current log sequence [src_tibero]... 188
Querying current snapshot#... 4306566

********************************************************************************
* Install to Target Database (4/5)
********************************************************************************
Dropping ProSync objects... ok
Dropping ProSync tablespace... DROP TABLESPACE instance_ts INCLUDING CONTENTS AND DATAFILES;

done

ok
Creating ProSync tablespace... ok
Dropping ProSync user... ok
Creating ProSync user... ok
Granting privileges... ok
Creating ProSync internal tables... ok
Generating initial construct history [src_tibero (group 1)]... ok
Generating initial commit history... ok

********************************************************************************
* Generate Configuration Parameters (5/5)
********************************************************************************
Generating Wallet... ok
Generating Extract [src_tibero] configuration...  ok
Generating Apply [tar_tibero] configuration...  ok
Generating LONG/LOB configuration...  ok
Generating instance map to prs_instance.map ...

********************************************************************************
* ProSync is installed successfully on Thu, 17 Apr 2025 14:38:38 +0900.
*
*   PRS_HOME     = /home/prosync/example
*   Binary Path  = /home/prosync/example/bin
*   ProSync User = prosync_user
*
*   Archived Log Path     = /home/tibero/tibero7/database/tibero/archive/
*   Archived Log Format   = log-t%t-r%r-s%s.arc
*   Initial log sequence# = 188
*
*   Initial change# (TSN) = 4306566
*
********************************************************************************
$ cd $PRS_HOME/config
$ ls -al
total 55
drwxr-xr-x  3 users users 4096 Apr 16 15:42 .
drwxr-xr-x 15 users users 4096 Apr 14 15:08 ..
-rw-r--r--  1 users users  547 Apr 17 14:38 instance_apply1.cfg
-rw-r--r--  1 users users  574 Apr 17 14:38 instance_ext1.cfg
-rw-r--r--  1 users users  470 Apr 17 14:38 instance_llob.cfg
-rw-r--r--  1 users users  352 Apr  3 16:19 prs_adm.cfg
-rw-r--r--  1 users users  367 Feb 27 19:22 prs_agent_agent1.cfg
-rw-r--r--  1 users users  367 Apr 16 15:32 prs_agent_agent2.cfg
-rw-r--r--  1 users users  367 Apr 16 15:32 prs_agent_agent3.cfg
-rw-r--r--  1 users users  367 Apr 16 15:32 prs_agent_agent4.cfg
-rw-r--r--  1 users users 1272 Apr 16 15:32 prs_instance.map
drwxr-xr-x  2 users users 4096 Apr 14 15:08 templates
-rw-r--r--  1 users users    5 Feb 27 13:06 variant
#--------------------------------------------------------
# Appended by prs_install.sh at Thu Apr 17 02:38:37 PM KST 2025
#

instance=(
    EXT1=(AGENT=agent1)(PROGRAM=prs_ext)
    APPLY1=(AGENT=agent1)(PORT=7620)(PROGRAM=prs_apply)
    LLOB=(AGENT=agent1)(PORT=7630)(PROGRAM=prs_llob)
)
################################################################################
#
# ProSync (Ext) Initialization Parameters
#
################################################################################

LOG_LEVEL=3

PRS_USER=prosync_user
PRS_PWD=#encrypted

EXTRACT_NUM=1

SRC_DB_TYPE=TIBERO
SRC_DB_NAME=src_tibero

ARCHIVE_LOG_DIR=/home/tibero/tibero7/database/tibero/archive/
ARCHIVE_LOG_FORMAT=log-t%t-r%r-s%s.arc

LOG_DIR=/home/prosync/example/var/instance/log
LOG_BACKUP_DIR=/home/prosync/example/var/instance/log/ext_backup
################################################################################
#
# ProSync (Apply) Initialization Parameters
#
################################################################################

LOG_LEVEL=3

PRS_USER=prosync_user
PRS_PWD=#encrypted

APPLY_NUM=1

TAR_DB_TYPE=TIBERO
TAR_DB_NAME=tar_tibero

SRC_DB_CNT=1

MAP=(TABLE DEFAULT)

DDL=(INCLUDE DEFAULT, TYPE=('ALTER TABLE','TRUNCATE TABLE'))

LOG_DIR=/home/prosync/example/var/instance/log
LOG_BACKUP_DIR=/home/prosync/example/var/instance/log/apply_backup
################################################################################
#
# ProSync (llob) Initialization Parameters
#
################################################################################

LOG_LEVEL=3

PRS_USER=prosync_user
PRS_PWD=#encrypted

SRC_DB_TYPE=TIBERO
SRC_DB_NAME=src_tibero

LLOB_FLASHBACK_ERROR=CURRENT

LOG_DIR=/home/prosync/example/var/instance/log
LOG_BACKUP_DIR=/home/prosync/example/var/instance/log/llob_backup
################################################################################
#
# ProSync (Admin) Initialization Parameters
#
################################################################################
LOG_LEVEL=3
LOG_DIR=/home/prosync/example/var/admin/log
LOG_BACKUP_DIR=/home/prosync/example/var/admin/log/backup
# tree 결과 예제
.
├── admin
├── agent
└── instance

ProSync 설치

Agent 및 Instance 설치 방법을 단계별로 안내한다.