본문 바로가기

TECH DOC

Tungsten Replicator v3.0 Installation

Tungsten Replicator v3.0 Installation

 

 

진행에 앞서 기본 흐름은 공식 홈페이지의 매뉴얼을 참조하였음을 알리며, 구성에 이상이 있음을 알림.

Tungsten Replicator 를 사용할 예정이 있는 경우 참고 정도로 활용하기 바람.

 

1.    Tungsten Replicator

데이터 복제 도구이다.

SYNC (Trigger-based), ASYNC (CDC) 를 지원하며 이기종 DBMS 에 사용가능 하다고 한다.

(3.0 으로 구성에 실패. 레퍼런스도 없고 공식 페이지의 매뉴얼도 만들어지고 있는 상태.)

 

다만 AIX 환경은 지원하지 않는다.

 

2.    Environment

Source : Linux, Oracle

Target : Linux, MariaDB

 

3.    Installation (Source)

l  rpm 설치

rpm -Uvh tungsten-replicator-3.0.0-524.noarch.rpm

 

l  SetupCDC.conf 구성

vi /opt/continuent/software/tungsten-replicator-3.0.0-524/tungsten-replicator/scripts/setupCDC.conf

service=TTT

sys_user=system

sys_pass=system#password

enable_archive_log=0

source_user=TTT

pub_user=tungsten

pub_password=tungsten

pub_tablespace=8

tungsten_user=tungsten2

tungsten_pwd=tungsten2

delete_publisher=1

delete_subscriber=1

cdc_type=CDCASYNC

specific_tables=0

 

./setupCDC.sh setupCDC.conf

 

l  TPM

cd /opt/continuent/software/tungsten-replicator-3.0.0-524

 

./tools/tpm install TTT \

--datasource-oracle-service=DBMON \

--datasource-type=oracle \

--install-directory=/opt/continuent \

--master=dbmon01 \

--members=dbmon01 \

--property=replicator.extractor.dbms.transaction_frag_size=10 \

--property=replicator.global.extract.db.password=tungsten2 \

--property=replicator.global.extract.db.user=tungsten2 \

--property=replicator.filter.replicate.do=TTT.TEST \

--replication-host=dbmon01 \

--replication-password=tungsten \

--replication-port=1521 \

--replication-user=tungsten \

--role=master \

--start-and-report=true \

--svc-table-engine=CDCASYNC

 

4.    Installation (Target)

l  rpm 설치

rpm -Uvh tungsten-replicator-3.0.0-524.noarch.rpm

 

l  TPM

cd /opt/continuent/software/tungsten-replicator-3.0.0-524

 

./tools/tpm install TTT \

--install-directory=/opt/continuent \

--master=(SOURCE IP ADDR)   \

--members=(TARGET IP ADDR) \

--datasource-user=tungsten \

--datasource-password=tungsten \

--svc-applier-filters=CDC,dbtransform,optimizeupdates \

--property=replicator.filter.CDC.from=TTT.TEST \

--property=replicator.filter.CDC.to=TTT.TEST \

--property=replicator.filter.replicate.do=TTT.TEST \

--start-and-report

 

5.    TPM

일종의 프로세스 컨트롤러이다.

 

최초 구성되야 되는 경우 tpm install … 를 사용한다.

이후 내용을 변경해야 하는 경우 tpm update … 를 사용한다.

 

process 를 새로이 기동해야 하는 경우엔 tpm start [service name] 을 사용한다.

 

추가했던 서비스를 제거해야 하는 경우 다음과 같이 사용한다.

./tools/tpm delete-service (service name) --i-am-sure

 

service name 의 경우 설치 당시 대문자를 사용했더라도 소문자로 등록되어 있다.

 

6.    TREPCTL

Tungsten Replicator 를 관리하는 유틸리티

 

다음의 명령어를 주로 사용한다.

(해당 서버의 하나의 Tungsten Replicator Service 만 있다고 가정)

 

/opt/continuent/tungsten/tungsten-replicator/bin/trepctl service (service_name) online

/opt/continuent/tungsten/tungsten-replicator/bin/trepctl service (service_name) offline

/opt/continuent/tungsten/tungsten-replicator/bin/trepctl service (service_name) status

/opt/continuent/tungsten/tungsten-replicator/bin/trepctl service (service_name) kill -y

 

online : process offline 에서 변경한다.

offline : process online 에서 변경한다.

status : process 의 상태를 조회한다.

kill : process kill 한다 –y yes 의미이다.

 

7.    Deinstallation

클린 설치를 원하는 경우 홈 디렉토리를 초기화 하고 rpm 을 재설치 하는 편이 낫다.

 

초기 설치한 경우 /opt/continuent 에 프로그램이 설치되고, 그 밑에 software 디렉토리가 있다.

해당 디렉토리만 남기고 삭제하더라도 service 등록 (tpm) 한 이력이 software 디렉토리 하부에 남아 있어,

tpm 사용 시 서비스명, 서비스 포트 충돌이 일어날 수 있다.

 

클린 설치는 /opt/continuent 밑의 모든 파일, 디렉토리를 삭제하고 rpm 을 재설치 한다.

 

rpm -e tungsten-replicator-3.0.0-524

rpm -Uvh tungsten-replicator-3.0.0-524.noarch.rpm

 

 

8.    Troubleshooting

a.    SetupCDC.conf 구성 시 구성 파라미터를 누락하지 않도록 주의한다.
설령 필요 없다고 판단하여 빼는 경우 스크립트 구조 상 예외 처리가 제대로 되어 있지 않아
스크립트를 역으로 뜯어봐야 하는 상황이 발생한다.

b.    SetupCDC.conf pub_tablespace 는 퍼블리셔 계정이 사용할 테이블 스페이스를 의미하며
v$tablespace.ts#
을 지정한다.

c.    Target 에서 tpm 사용시 replicator.filter.CDC.from, replicatefilter.CDC.to 정의가 없는 경우
알 수 없는 에러가 발생할 수 있다. trepctl status  pendingExceptionMessage 항목에 “Unable to set value= …” 형태의 메시지가 나타난다.

d.    위와 같이 구성을 완료한 경우 변경이 있을 때 thl 밑의 로그 사이즈가 증가하고 타겟 측에 전달되는 걸 확인할 수 있었다.
하지만 소스/타겟 모드 State : ONLINE 이고 구성 에러가 없음에도 불구하고 TTT.TEST 에 동기화 되지 않았다.

e.    d 의 경우에서 service name source user, 동기화 대상 수정을 한 경우 정상적으로 동기화 되는 경우가 있다.

 

9.    References

A.     continuent | www.continuent.com