패치 가이드

1. 로그 스위치 수행 (SRC DB)

4.0 기준 Abort 종료 시 이력을 저장하지 않기 때문에 로그를 처음부터 읽는다. 이를 위해 로그 스위치를 먼저 수행해야 한다.

ALTER SYSTEM SWITCH LOGFILE;

2. 프로세스 강제 종료 (SRC / TAR)

4.0 버전의 경우 abort 종료가 반드시 필요하다.

ADMIN> shutd man (abort);

3. 메타데이터 백업을 위한 유저 생성 (SRC / TAR)

기존 메타데이터를 백업하기 위해 별도의 백업 전용 유저를 생성하고 필요한 권한을 부여한다.

CREATE USER [백업유저이름] IDENTIFIED BY "[백업유저암호]";
GRANT CONNECT, RESOURCE, CREATE SESSION TO [백업유저이름];
GRANT INSERT ANY TABLE TO [백업유저이름];
GRANT CREATE ANY SYNONYM TO [백업유저이름];
GRANT CREATE ANY VIEW TO [백업유저이름];

4. var / config 디렉토리 이관

기존 환경의 데이터를 보존하면서 새로운 4.4.x 바이너리로 마이그레이션하기 위해 디렉토리를 재구성한다.

mv prosync/var prosync_4_4/var
mv prosync/config prosync_4_4/config
mv prosync old_prosync
mv prosync_4_4 prosync

5. prs_install.cfg 작성

prosync_4_4/prs_install.cfg 파일을 생성하고 아래 내용을 포함한다.

############################################
#
# 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

...

6. 메타데이터 백업 수행

기존 ProSync 환경에서 메타 정보를 백업한다.

export PREVIOUS_PRS_HOME=[old_prosync의 절대경로]
$PRS_HOME/install/prs_backup.sh \
  -c prs_install.cfg \
  -u [백업유저이름] \
  -p [백업유저암호]

7. SRC DB 권한 부여

메타데이터 수집을 위해 SRC DB에서 필요한 권한을 부여한다.

GRANT SELECT ANY DICTIONARY TO $PRS_USER;

8. TAR DB 권한 부여

GRANT LOCK ANY TABLE TO $PRS_USER;
GRANT CREATE ANY TABLE TO $PRS_USER;
GRANT CREATE ANY SEQUENCE TO $PRS_USER;
GRANT CREATE ANY INDEX TO $PRS_USER;
GRANT CREATE ANY TRIGGER TO $PRS_USER;
GRANT CREATE ANY SYNONYM TO $PRS_USER;
GRANT CREATE ANY VIEW TO $PRS_USER;
GRANT CREATE ANY PROCEDURE TO $PRS_USER;
GRANT SELECT ANY DICTIONARY TO $PRS_USER;
GRANT ALTER ANY TABLE TO $PRS_USER;
GRANT ALTER ANY INDEX TO $PRS_USER;
GRANT ALTER ANY TRIGGER TO $PRS_USER;
GRANT ALTER ANY SEQUENCE TO $PRS_USER;
GRANT ALTER ANY PROCEDURE TO $PRS_USER;
GRANT DROP ANY TABLE TO $PRS_USER;
GRANT DROP ANY INDEX TO $PRS_USER;
GRANT DROP ANY TRIGGER TO $PRS_USER;
GRANT DROP ANY SEQUENCE TO $PRS_USER;
GRANT DROP ANY VIEW TO $PRS_USER;
GRANT DROP ANY PROCEDURE TO $PRS_USER;
GRANT DROP ANY SYNONYM TO $PRS_USER;
GRANT COMMENT ANY TABLE TO $PRS_USER;

9. prs_obj_group1.list 생성 및 메타 정보 이관

cp $PRS_HOME/install/templates/prs_obj_group1.list.template \
  $PRS_HOME/install/prs_obj_group1.list

참고

{$INSTANCE_NAME}.PRS_OBJ_LIST에 대한 정보는 prs_backup.sh를 통해 backup_user 스키마에 저장되며, prs_meta.sh 실행 시 해당 정보가 자동으로 참조된다. 따라서 prs_obj_group1.list 파일을 별도로 작성할 필요는 없으며, 시스템이 해당 파일의 존재 여부만을 확인하므로 파일이 경로에 존재하기만 하면 된다.

메타 정보 이관 예시

$PRS_HOME/install/prs_meta.sh -c prs_install.cfg

10. Config 파일 수정

10.1. 각 process별 cfg 파일 내 파라미터 수정

  • LISTENER_PORT 제거

  • TOP_ID 제거

  • LogBackup Log 경로 수정

10.2. vf.cfg 삭제되었음

10.3. prs_mgr.cfgprs_agent_{agent_id}.cfg 으로 변경

11. Agent 설치

4.4.x 버전부터는 Agent 설치가 Instance 설치와 분리되었기 때문에, 패치 작업 전에 반드시 Agent 설치를 완료해야 한다. 자세한 설치 방법은 Agent 설치 문서를 참고한다.

12. prs_top.map 변경 사항

4.4.x 부터는 prs_top.map에서 prs_instance.map으로 변경되었다.

4.0 형식

MGR=(ID=lmgr)(HOST=localhost)(PORT=7600)

Prosync=(
    EXT1=(MGR=lmgr)(HOST=localhost)(PORT=7610)(PROGRAM=prs_ext)
    APPLY1=(MGR=lmgr)(HOST=localhost)(PORT=7620)(PROGRAM=prs_apply)
    LLOB=(MGR=lmgr)(HOST=localhost)(PORT=7630)(PROGRAM=prs_llob)
    VF=(MGR=lmgr)(HOST=localhost)(PORT=7640)(PROGRAM=prs_vf)
)

4.4.x 형식

AGENT=(ID=agent1)(HOST=172.19.0.11)(PORT=7600)

Prosync=(
    EXT1=(AGENT=agent1)(PROGRAM=prs_ext)
    APPLY1=(AGENT=agent1)(PORT=7620)(PROGRAM=prs_apply)
    LLOB=(AGENT=agent1)(PORT=7630)(PROGRAM=prs_llob)
)

  • localhost 제약 제거

  • Instance에서 Host 제거 및 MGRAgent로 변경

  • ext process에서 Port 제거

  • verify process삭제

13. ProSync 재기동

4.4.x부터는 manager 대신 agent를 사용하기 때문에 agent 기동명령어도 man(ager)에서 age(nt)로 변경되었다.

ADMIN> start age(nt) {AGENT_ID}
ADMIN> start {INSTANCE_ID}

Last updated