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