문서유형ㅣ기술정보
분야ㅣ설치
적용제품버전ㅣTibero7.2.3, ProSync 4.6.0
문서번호ㅣPINTI004
개요
총 4편에 걸쳐 ProSync 양방향 CM FailOver를 사용한 무중단 동기화 환경 구축` 가이드를 기술하였습니다.
본 문서에서는 2편 ProSync 양방향 동기화 확인를 기술하였습니다.
- 1편: ProSync 양방향 설치
- 2편: ProSync 양방향 동기화 확인
- 3편: CM Fail-Over 설정
- 4편: CM FailOver 동작
방법
A Set ProSync 정상 동작 확인
Agent 기동
- node1, node2, node3, node4 수행
su - tibero prs12 prs_adm
- ProSync Admin에서 아래와 같이 수행하여 정상적으로 Agent를 기동합니다.
Admin> status
prs_agent ID: agent1_12_34, HOST: 10.10.10.65, PORT: 7600, CM_GROUP: grp_src_12_34, CM_ID: 0 is stopped
prs_agent ID: agent2_12_34, HOST: 10.10.10.66, PORT: 7601, CM_GROUP: grp_src_12_34, CM_ID: 1 is stopped
prs_agent ID: agent3_12_34, HOST: 10.10.10.67, PORT: 7602, CM_GROUP: grp_tar_12_34, CM_ID: 0 is stopped
prs_agent ID: agent4_12_34, HOST: 10.10.10.68, PORT: 7603, CM_GROUP: grp_tar_12_34, CM_ID: 1 is stopped
Instance ID: [prs_12_34]
Agent Process for proc[Extract], num[1] is not running.
Agent Process for proc[Extract], num[2] is not running.
Agent Process for proc[Apply], num[1] is not running.
Agent Process for proc[LONG/LOB], num[1] is not running.
# node1
Admin> startup agent
*** Startup Agent Process... [agent1_12_34]
Process 'prs_agent' started.
# node2
Admin> startup agent
*** Startup Agent Process... [agent2_12_34]
Process 'prs_agent' started.
# node3
Admin> startup agent
*** Startup Agent Process... [agent3_12_34]
Process 'prs_agent' started.
# node4
Admin> startup agent
*** Startup Agent Process... [agent4_12_34]
Process 'prs_agent' started.
Admin> status
prs_agent ID: agent1_12_34, HOST: 10.10.10.65, PORT: 7600, CM_GROUP: grp_src_12_34, CM_ID: 0 is running
prs_agent ID: agent2_12_34, HOST: 10.10.10.66, PORT: 7601, CM_GROUP: grp_src_12_34, CM_ID: 1 is running
prs_agent ID: agent3_12_34, HOST: 10.10.10.67, PORT: 7602, CM_GROUP: grp_tar_12_34, CM_ID: 0 is running
prs_agent ID: agent4_12_34, HOST: 10.10.10.68, PORT: 7603, CM_GROUP: grp_tar_12_34, CM_ID: 1 is running
Instance ID: [prs_12_34]
prs_12_34_ext1 is stopped (prs_agent ID : agent1_12_34, HOST: 10.10.10.65, PORT: 7600)
prs_12_34_ext2 is stopped (prs_agent ID : agent2_12_34, HOST: 10.10.10.66, PORT: 7601)
prs_12_34_apply1 is stopped (prs_agent ID : agent3_12_34, HOST: 10.10.10.67, PORT: 7602)
prs_12_34_llob is stopped (prs_agent ID : agent1_12_34, HOST: 10.10.10.65, PORT: 7600)
ProSync Ext 파라미터 적용
vi ${PRS_HOME}/config/${INSTANCE_ID}_ext1.cfg동기화 유저 제외 파라미터 적용vi ${PRS_HOME}/config/${INSTANCE_ID}_ext2.cfg동기화 유저 제외 파라미터 적용
EXCLUDE_USER=prs_34_12
ProSync Instance 기동
- Agent가 정상적으로 기동 되었다면, ProSync Instance를 기동합니다.
- node 4개 한 곳에서 다음 명령어를 수행합니다.
su - tibero prs12 prs_adm
- ProSync Admin에서 아래와 같이 수행하여 정상적으로 ProSync Instance를 기동합니다.
Admin> status
prs_agent ID: agent1_12_34, HOST: 10.10.10.65, PORT: 7600, CM_GROUP: grp_src_12_34, CM_ID: 0 is stopped
prs_agent ID: agent2_12_34, HOST: 10.10.10.66, PORT: 7601, CM_GROUP: grp_src_12_34, CM_ID: 1 is stopped
prs_agent ID: agent3_12_34, HOST: 10.10.10.67, PORT: 7602, CM_GROUP: grp_tar_12_34, CM_ID: 0 is stopped
prs_agent ID: agent4_12_34, HOST: 10.10.10.68, PORT: 7603, CM_GROUP: grp_tar_12_34, CM_ID: 1 is stopped
Instance ID: [prs_12_34]
Agent Process for proc[Extract], num[1] is not running.
Agent Process for proc[Extract], num[2] is not running.
Agent Process for proc[Apply], num[1] is not running.
Agent Process for proc[LONG/LOB], num[1] is not running.
Admin> startup agent
*** Startup Agent Process... [agent1_12_34]
Process 'prs_agent' started.
Admin> startup prs_12_34
*** Startup Process... [prs_12_34_ext1]
Process 'prs_12_34_ext1' started.
*** Startup Process... [prs_12_34_ext2]
Process 'prs_12_34_ext2' started.
*** Startup Process... [prs_12_34_apply1]
Process 'prs_12_34_apply1' started.
*** Startup Process... [prs_12_34_llob]
Process 'prs_12_34_llob' started.
Admin> status
prs_agent ID: agent1_12_34, HOST: 10.10.10.65, PORT: 7600, CM_GROUP: grp_src_12_34, CM_ID: 0 is running
prs_agent ID: agent2_12_34, HOST: 10.10.10.66, PORT: 7601, CM_GROUP: grp_src_12_34, CM_ID: 1 is running
prs_agent ID: agent3_12_34, HOST: 10.10.10.67, PORT: 7602, CM_GROUP: grp_tar_12_34, CM_ID: 0 is running
prs_agent ID: agent4_12_34, HOST: 10.10.10.68, PORT: 7603, CM_GROUP: grp_tar_12_34, CM_ID: 1 is running
Instance ID: [prs_12_34]
prs_12_34_ext1 (1) is running (prs_agent ID : agent1_12_34, HOST: 10.10.10.65, PORT: 7600)
prs_12_34_ext2 (2) is running (prs_agent ID : agent2_12_34, HOST: 10.10.10.66, PORT: 7601)
prs_12_34_apply1 (1) is running (prs_agent ID : agent3_12_34, HOST: 10.10.10.67, PORT: 7602)
prs_12_34_llob (1) is running (prs_agent ID : agent1_12_34, HOST: 10.10.10.65, PORT: 7600)
ProSync 프로세스
- 각 노드별로 기동한 ProSync Agent와 ProSync Instance를 확인합니다.
# node1 [tibero@node1 ~]$ ps -ef |grep prs_12_34 |grep -v grep tibero 3504683 1 0 00:08 ? 00:00:00 prs_agent agent1_12_34 tibero 3505310 3504683 0 00:10 ? 00:00:00 prs_ext prs_12_34 1 agent1_12_34 tibero 3505324 3504683 0 00:10 ? 00:00:00 prs_llob prs_12_34 1 agent1_12_34 # node2 [tibero@node2 ~]$ ps -ef |grep prs_12_34 |grep -v grep tibero 2033572 1 0 00:08 ? 00:00:00 prs_agent agent2_12_34 tibero 2034189 2033572 0 00:10 ? 00:00:00 prs_ext prs_12_34 2 agent2_12_34 # node3 [tibero@node3 ~]$ ps -ef |grep prs_12_34 |grep -v grep tibero 3457292 1 0 00:08 ? 00:00:00 prs_agent agent3_12_34 tibero 3457879 3457292 0 00:10 ? 00:00:00 prs_apply prs_12_34 1 agent3_12_34 # node4 [tibero@node4 ~]$ ps -ef |grep prs_12_34 |grep -v grep tibero 2035576 1 0 00:08 ? 00:00:00 prs_agent agent4_12_34
동기화 테스트
Database 테이블 생성
- 동기화 테스트를 위해 미리 만들어준 유저에 테이블을 생성합니다.
# node1 su - tibero tbsql user_12_34/tibero SQL> create table table_12_34(col1 number, col2 varchar(100)); Table 'TABLE_12_34' created. # node3 su - tibero tbsql user_12_34/tibero SQL> create table table_12_34(col1 number, col2 varchar(100)); Table 'TABLE_12_34' created.
ProSync 테이블 등록
- PorSync에서 테이블을 동기화 대상으로 등록합니다.
- ProSync에서 테이블을 등록하면 자동으로
Supplemental logging자동으로 적용합니다.
su - tibero prs12 prs_adm Admin> alter prs_12_34 add table USER_12_34.TABLE_12_34 group=1; Table 'USER_12_34.TABLE_12_34' added.
Database 테이블 데이터 입력
- 동기화 대상 테이블에 INSERT를 수행합니다.
# node1 SQL> insert into table_12_34(col1,col2) values(1,'node1'); 1 row inserted. SQL> commit Commit completed. # node2 SQL> insert into table_12_34(col1,col2) values(2,'node2'); 1 row inserted. SQL> commit; Commit completed.
ProSync 동기화 확인
- Source Node와 Target Node에서 입력된 데이터를 확인합니다.
# node1, node2 SQL> set linesize 150 SQL> col col1 for 99 SQL> col col2 for a10 SQL> select * from table_12_34; COL COL2 --- ---------- 1 node1 2 node2 # node3, node4 SQL> set linesize 150 SQL> col col1 for 99 SQL> col col2 for a100 SQL> select * from table_12_34; COL COL2 --- ---------- 1 node1 2 node2
B Set ProSync 정상 동작 확인
Agent 기동
- node1, node2, node3, node4 수행
su - tibero prs12 prs_adm
- ProSync Admin 에서 아래와 같이 수행하여 정상적으로 Agent를 기동합니다.
Admin> status
prs_agent ID: agent1_34_12, HOST: 10.10.10.67, PORT: 6600, CM_GROUP: grp_src_34_12, CM_ID: 0 is stopped
prs_agent ID: agent2_34_12, HOST: 10.10.10.68, PORT: 6601, CM_GROUP: grp_src_34_12, CM_ID: 1 is stopped
prs_agent ID: agent3_34_12, HOST: 10.10.10.65, PORT: 6602, CM_GROUP: grp_tar_34_12, CM_ID: 0 is stopped
prs_agent ID: agent4_34_12, HOST: 10.10.10.66, PORT: 6603, CM_GROUP: grp_tar_34_12, CM_ID: 1 is stopped
Instance ID: [prs_34_12]
Agent Process for proc[Extract], num[1] is not running.
Agent Process for proc[Extract], num[2] is not running.
Agent Process for proc[Apply], num[1] is not running.
Agent Process for proc[LONG/LOB], num[1] is not running.
# node1
Admin> startup agent
*** Startup Agent Process... [agent3_34_12]
Process 'prs_agent' started.
# node2
Admin> startup agent
*** Startup Agent Process... [agent4_34_12]
Process 'prs_agent' started.
# node3
Admin> startup agent
*** Startup Agent Process... [agent1_34_12]
Process 'prs_agent' started.
# node4
Admin> startup agent
*** Startup Agent Process... [agent2_34_12]
Process 'prs_agent' started.
Admin> status
prs_agent ID: agent1_34_12, HOST: 10.10.10.67, PORT: 6600, CM_GROUP: grp_src_34_12, CM_ID: 0 is running
prs_agent ID: agent2_34_12, HOST: 10.10.10.68, PORT: 6601, CM_GROUP: grp_src_34_12, CM_ID: 1 is running
prs_agent ID: agent3_34_12, HOST: 10.10.10.65, PORT: 6602, CM_GROUP: grp_tar_34_12, CM_ID: 0 is running
prs_agent ID: agent4_34_12, HOST: 10.10.10.66, PORT: 6603, CM_GROUP: grp_tar_34_12, CM_ID: 1 is running
Instance ID: [prs_34_12]
prs_34_12_ext1 is stopped (prs_agent ID : agent1_34_12, HOST: 10.10.10.67, PORT: 6600)
prs_34_12_ext2 is stopped (prs_agent ID : agent2_34_12, HOST: 10.10.10.68, PORT: 6601)
prs_34_12_apply1 is stopped (prs_agent ID : agent3_34_12, HOST: 10.10.10.65, PORT: 6602)
prs_34_12_llob is stopped (prs_agent ID : agent1_34_12, HOST: 10.10.10.67, PORT: 6600)
ProSync Ext 파라미터 적용
vi ${PRS_HOME}/config/${INSTANCE_ID}_ext1.cfg동기화 유저 제외 파라미터 적용vi ${PRS_HOME}/config/${INSTANCE_ID}_ext2.cfg동기화 유저 제외 파라미터 적용
EXCLUDE_USER=prs_12_34
ProSync Instance 기동
- Agent가 정상적으로 기동 되었다면, ProSync Instance를 기동합니다.
- node 4개 한 곳에서 다음 명령어를 수행합니다.
su - tibero prs12 prs_adm
- ProSync Admin에서 아래와 같이 수행하여 정상적으로 ProSync Instance를 기동합니다.
Admin> status
prs_agent ID: agent1_34_12, HOST: 10.10.10.67, PORT: 6600, CM_GROUP: grp_src_34_12, CM_ID: 0 is running
prs_agent ID: agent2_34_12, HOST: 10.10.10.68, PORT: 6601, CM_GROUP: grp_src_34_12, CM_ID: 1 is running
prs_agent ID: agent3_34_12, HOST: 10.10.10.65, PORT: 6602, CM_GROUP: grp_tar_34_12, CM_ID: 0 is running
prs_agent ID: agent4_34_12, HOST: 10.10.10.66, PORT: 6603, CM_GROUP: grp_tar_34_12, CM_ID: 1 is running
Instance ID: [prs_34_12]
prs_34_12_ext1 is stopped (prs_agent ID : agent1_34_12, HOST: 10.10.10.67, PORT: 6600)
prs_34_12_ext2 is stopped (prs_agent ID : agent2_34_12, HOST: 10.10.10.68, PORT: 6601)
prs_34_12_apply1 is stopped (prs_agent ID : agent3_34_12, HOST: 10.10.10.65, PORT: 6602)
prs_34_12_llob is stopped (prs_agent ID : agent1_34_12, HOST: 10.10.10.67, PORT: 6600)
Admin> startup prs_34_12
*** Startup Process... [prs_34_12_ext1]
Process 'prs_34_12_ext1' started.
*** Startup Process... [prs_34_12_ext2]
Process 'prs_34_12_ext2' started.
*** Startup Process... [prs_34_12_apply1]
Process 'prs_34_12_apply1' started.
*** Startup Process... [prs_34_12_llob]
Process 'prs_34_12_llob' started.
Admin> status
prs_agent ID: agent1_34_12, HOST: 10.10.10.67, PORT: 6600, CM_GROUP: grp_src_34_12, CM_ID: 0 is running
prs_agent ID: agent2_34_12, HOST: 10.10.10.68, PORT: 6601, CM_GROUP: grp_src_34_12, CM_ID: 1 is running
prs_agent ID: agent3_34_12, HOST: 10.10.10.65, PORT: 6602, CM_GROUP: grp_tar_34_12, CM_ID: 0 is running
prs_agent ID: agent4_34_12, HOST: 10.10.10.66, PORT: 6603, CM_GROUP: grp_tar_34_12, CM_ID: 1 is running
Instance ID: [prs_34_12]
prs_34_12_ext1 (1) is running (prs_agent ID : agent1_34_12, HOST: 10.10.10.67, PORT: 6600)
prs_34_12_ext2 (2) is running (prs_agent ID : agent2_34_12, HOST: 10.10.10.68, PORT: 6601)
prs_34_12_apply1 (1) is running (prs_agent ID : agent3_34_12, HOST: 10.10.10.65, PORT: 6602)
prs_34_12_llob (1) is running (prs_agent ID : agent1_34_12, HOST: 10.10.10.67, PORT: 6600)
ProSync 프로세스
- 각 노드별로 기동한 ProSync Agent와 ProSync Instance를 확인합니다.
# node1 [tibero@node1 ~]$ ps -ef |grep prs_34_12 |grep -v grep tibero 3619690 1 0 01:24 ? 00:00:00 prs_agent agent3_34_12 tibero 3626888 3619690 0 01:28 ? 00:00:00 prs_apply prs_34_12 1 agent3_34_12 # node2 [tibero@node2 ~]$ ps -ef |grep prs_34_12 |grep -v grep tibero 2056030 1 0 01:24 ? 00:00:00 prs_agent agent4_34_12 # node3 [tibero@node3 ~]$ ps -ef |grep prs_34_12 |grep -v grep tibero 3479746 1 0 01:24 ? 00:00:00 prs_agent agent1_34_12 tibero 3481078 3479746 0 01:28 ? 00:00:00 prs_ext prs_34_12 1 agent1_34_12 tibero 3481092 3479746 0 01:28 ? 00:00:00 prs_llob prs_34_12 1 agent1_34_12 # node4 [tibero@node4 ~]$ ps -ef |grep prs_34_12 |grep -v grep tibero 2058007 1 0 01:24 ? 00:00:00 prs_agent agent2_34_12 tibero 2059304 2058007 0 01:28 ? 00:00:00 prs_ext prs_34_12 2 agent2_34_12
동기화 테스트
Database 테이블 생성
- 동기화 테스트를 위해 미리 만들어준 유저에 테이블을 생성합니다.
# node3 su - tibero tbsql user_34_12/tibero SQL> create table table_34_12(col1 number, col2 varchar(100)); Table 'TABLE_34_12' created. # node1 su - tibero tbsql user_34_12/tibero SQL> create table table_34_12(col1 number, col2 varchar(100)); Table 'TABLE_34_12' created.
ProSync 테이블 등록
- PorSync에서 테이블을 동기화 대상으로 등록합니다.
- ProSync에서 테이블을 등록하면 자동으로
Supplemental logging자동으로 적용합니다.
su - tibero prs34 prs_adm Admin> alter prs_34_12 add table USER_34_12.TABLE_34_12 group=1; Table 'USER_34_12.TABLE_34_12' added.
Database 테이블 데이터 입력
- 동기화 대상 테이블에 INSERT를 수행합니다.
# node3 SQL> insert into table_34_12(col1,col2) values(1,'node3'); 1 row inserted. SQL> commit; Commit completed. # node4 SQL> insert into table_34_12(col1,col2) values(2,'node4'); 1 row inserted. SQL> commit; Commit completed.
ProSync 동기화 확인
- Source Node와 Target Node에서 입력된 데이터를 확인합니다.
# node3, node4 SQL> set linesize 150 SQL> col col1 for 99 SQL> col col2 for a10 SQL> select * from table_34_12; COL COL2 --- ---------- 2 node4 1 node3 2 rows selected. # node1, node2 SQL> set linesize 150 SQL> col col1 for 99 SQL> col col2 for a10 SQL> select * from table_34_12; COL COL2 --- ---------- 1 node3 2 node4 2 rows selected.