문서유형ㅣ기술정보
분야ㅣ설치
적용제품버전ㅣTibero7, ProSync 4.6.0
문서번호ㅣPINTI005
개요
총 4편에 걸쳐 ProSync 양방향 CM FailOver를 사용한 무중단 동기화 환경 구축` 가이드를 기술하였습니다.
본 문서에서는 3편 CM FailOver 설정을 기술하였습니다.
- 1편: ProSync 양방향 설치
- 2편: ProSync 양방향 동기화 확인
- 3편: CM FailOver 설정
- 4편: CM FailOver 동작
방법
A set ProSync 모두 종료
- CM FailOver 설정을 위해서는 모든 ProSync Instance와 Agent가 종료되어야합니다.
su - tibero prs12 prs_adm # node1~4 중 한 곳에서 수행 shutdown prs_12_34 # node1 수행 shutdown agent agent1_12_34 # node2 수행 shutdown agent agent2_12_34 # node3 수행 shutdown agent agent3_12_34 # node4 수행 shutdown agent agent4_12_34
B set ProSync 모두 종료
su -tibero prs34 prs_adm # node1~4 중 한 곳에서 수행 shutdown prs_34_12 # node3 수행 shutdown agent agent1_34_12 # node4 수행 shutdown agent agent2_34_12 # node1 수행 shutdown agent agent3_34_12 # node2 수행 shutdown agent agent4_34_12
A set ProSync CM FailOver 구성
CM FailOver 스크립트 등록
- CM FailOver 스크립트의 경우 CM에 등록된 ProSync Agent를 SwitchOver 하기 위해 사용됩니다.
- ProSync Agent 별로 스크립트를 사용해야합니다.
Source TAC (node1, node2)
- ProSync 엔진은 공유 파일 시스템에 있어, 노드별로 각각 설정합니다.
prs12 cd $PRS_HOME/bin ls -lt |grep prs_[0-9] -rwxr-xr-x 1 tibero dba 1148 Mar 17 05:33 prs_1.sh -rwxr-xr-x 1 tibero dba 1148 Mar 17 05:33 prs_0.sh # node1의 스크립트 mv prs_0.sh agent1_12_34.sh # node2의 스크립트 mv prs_1.sh agent2_12_34.sh
node1
CM FailOver가 발생하면, Agent에 명령을 내리기 위한 스크립트를 설정한다.
$PRS_HOME/bin/agent1_12_34.sh파일 내에 3개의 파라미터 설정
#!/bin/bash export TB_HOME=/tibero/tibero7 export PRS_HOME=/share/prosync4_12_34 AGENT_ID=agent1_12_34 ... 생략 ...
node2
CM FailOver가 발생하면, Agent에 명령을 내리기 위한 스크립트를 설정합니다.
$PRS_HOME/bin/agent2_12_34.sh파일 내에 3개의 파라미터를 설정합니다.
#!/bin/bash export TB_HOME=/tibero/tibero7 export PRS_HOME=/share/prosync4_12_34 AGENT_ID=agent2_12_34 ... 생략 ...
Target TAC (node3, node4)
- ProSync 엔진은 공유 파일 시스템에 있어, 노드별로 각각 설정합니다.
prs12 cd $PRS_HOME/bin ls -lt |grep prs_[0-9] -rwxr-xr-x 1 tibero dba 1148 Mar 17 05:33 prs_1.sh -rwxr-xr-x 1 tibero dba 1148 Mar 17 05:33 prs_0.sh # node1의 스크립트 mv prs_0.sh agent3_12_34.sh # node2의 스크립트 mv prs_1.sh agent4_12_34.sh
node3
CM FailOver가 발생하면, Agent에 명령을 내리기 위한 스크립트를 설정합니다.
$PRS_HOME/bin/agent3_12_34.sh파일 내에 3개의 파라미터를 설정합니다.
#!/bin/bash export TB_HOME=/tibero/tibero7 export PRS_HOME=/share/prosync4_12_34 AGENT_ID=agent3_12_34 ... 생략 ...
node4
CM FailOver가 발생하면, Agent에 명령을 내리기 위한 스크립트를 설정합니다.
$PRS_HOME/bin/agent4_12_34.sh파일 내에 3개의 파라미터를 설정합니다.
#!/bin/bash export TB_HOME=/tibero/tibero7 export PRS_HOME=/share/prosync4_12_34 AGENT_ID=agent4_12_34 ... 생략 ...
CM Group 등록
Source TAC (node1, node2)
- CM에 GROUP을 추가하여, node1과 node2의 Agent를 Group에 등록합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.65/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db12 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.66/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db12 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
=====================================================================- CM Group 등록은 한 쪽 노드에서 수행합니다.
$ cmrctl add group --name grp_src_12_34 --cname cls0 --grptype prosync --failover true Resource add success! (group, grp_src_12_34)
- CM Group은 Source와 Target을 따로 가져갑니다.
- 추출 프로세스가 Source, 반영 프로세스가 Target인 경우에 해당합니다.
- 추출/반영 프로세스가 모두 Source에서 진행 된다면, Target에 설정할 필요는 없습니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 DOWN type: prosync (failover: ON)
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
.. 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 DOWN type: prosync (failover: ON)
=====================================================================Target TAC (node3, node4)
- CM에 GROUP을 추가하여, node3과 node4의 Agent를 Group에 등록합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.67/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db34 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.68/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db34 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
=====================================================================- CM Group 등록은 한 쪽 노드에서 수행하면 됩니다.
$ cmrctl add group --name grp_tar_12_34 --cname cls0 --grptype prosync --failover true Resource add success! (group, grp_tar_12_34)
- CM Group은 Source와 Target을 따로 가져갑니다.
- 추출 프로세스가 Source, 반영 프로세스가 Target인 경우에 해당 합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 DOWN type: prosync (failover: ON)
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 DOWN type: prosync (failover: ON)
=====================================================================CM Agent 등록
Source TAC (node1, node2)
- Agent는 노드 별 CM의 Group에 각각 등록합니다.
node1
- node1에 agent를 등록합니다.
- Agent 등록 시 아래의 옵션을 추가합니다.
- --name Agent이름
- --grpname Group이름
- --script 위에서 설정한 CM FailOver 스크립트 경로
- --failover true
$ cmrctl add agent --name agent1_12_34 --grpname grp_src_12_34 --script /share/prosync4_12_34/bin/agent1_12_34.sh Resource add success! (agent, agent1_12_34)
- Agent는 노드별 CM에서 각각 관리합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent1_12_34 DOWN /share/prosync4_12_34/bin/agent1_12_34.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 DOWN type: prosync (failover: ON)
=====================================================================node2
- node2에 agent를 등록합니다.
- Agent 등록 시 아래의 옵션을 추가합니다.
- --name Agent이름
- --grpname Group이름
- --script 위에서 설정한 CM FailOver 스크립트 경로
- --failover true
$ cmrctl add agent --name agent2_12_34 --grpname grp_src_12_34 --script /share/prosync4_12_34/bin/agent2_12_34.sh Resource add success! (agent, agent2_12_34)
- Agent는 노드별 CM에서 각각 관리합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent1_12_34 DOWN /share/prosync4_12_34/bin/agent1_12_34.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent2_12_34 DOWN /share/prosync4_12_34/bin/agent2_12_34.sh, start retry cnt: 0
=====================================================================Target TAC (node3, node4)
- Agent는 노드 별 CM의 Group에 각각 등록합니다.
node3
- node3에 agent를 등록한다.
- Agent 등록 시 아래의 옵션을 추가한다.
- --name Agent이름
- --grpname Group이름
- --script 위에서 설정한 CM FailOver 스크립트 경로
- --failover true
$ cmrctl add agent --name agent3_12_34 --grpname grp_tar_12_34 --script /share/prosync4_12_34/bin/agent3_12_34.sh Resource add success! (agent, agent3_12_34)
- Agent는 노드별 CM에서 각각 관리합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent3_12_34 DOWN /share/prosync4_12_34/bin/agent3_12_34.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 DOWN type: prosync (failover: ON)
=====================================================================node4
- node3에 agent를 등록합니다.
- Agent 등록 시 아래의 옵션을 추가합니다.
- --name Agent이름
- --grpname Group이름
- --script 위에서 설정한 CM FailOver 스크립트 경로
- --failover true
$ cmrctl add agent --name agent4_12_34 --grpname grp_tar_12_34 --script /share/prosync4_12_34/bin/agent4_12_34.sh Resource add success! (agent, agent4_12_34)
- Agent는 노드별 CM에서 각각 관리한다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent3_12_34 DOWN /share/prosync4_12_34/bin/agent3_12_34.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent4_12_34 DOWN /share/prosync4_12_34/bin/agent4_12_34.sh, start retry cnt: 0
=====================================================================ProSync Agent Parameter
- Agent1~4 모두 CM과 통신을 위해 다음 파라미터를 추가합니다.
- 아래의 파라미터는 CM과 통신하며, CM의 제어를 받습니다.
- ProSync Admin을 통해 수동으로 Agent를 기동하지 않습니다.
USE_CM=Y PRS_AGENT_PROC_MAX_FAIL_CNT=10 PRS_AGENT_PROC_STARTUP_TIMEOUT=10 PRS_AGENT_PROC_STATUS_REPLY_TIMEOUT=10 PRS_AGENT_PROC_STATUS_INTERVAL=3 PRS_AGENT_CM_PROBE_TIMEOUT=0
| 파라미터 | 설명 |
|---|---|
| USE_CM | CM 사용 여부를 설정합니다. Y로 설정할 경우 하위 프로세스의 상태를 모니터링하고, 장애 발생 시 재기동을 수행합니다. 내부 장애 발생 시 cmrctl을 통해 정지 요청을 수행합니다. (기본값: N) |
| PRS_AGENT_PROC_MAX_FAIL_CNT | 하위 프로세스 장애 발생 시 상태를 보정하기 위해 재시도하는 최대 횟수를 설정합니다. (기본값: 10) |
| PRS_AGENT_PROC_STARTUP_TIMEOUT | 프로세스 기동 요청 이후 정상적으로 처리되기까지 대기하는 최대 시간(초)을 설정합니다. 기동 요청이 정상 처리되지 않을 경우, 설정한 시간만큼 대기한 후 재시도합니다. |
| PRS_AGENT_PROC_STATUS_REPLY_TIMEOUT | 하위 프로세스로부터 응답이 없을 경우 대기하는 최대 시간(초)을 설정합니다. 초과 시 해당 프로세스에 hang이 발생한 것으로 판단하고 재기동을 수행합니다. |
| PRS_AGENT_PROC_STATUS_INTERVAL | Agent 프로세스가 CM에게 cmrctl check 명령을 보내는 주기를 설정합니다. |
| PRS_AGENT_CM_PROBE_TIMEOUT | CM 상태 확인 시 대기하는 최대 시간(초)을 설정합니다. 0으로 설정할 경우 cmrctl 응답을 무한히 대기합니다. 설정값을 초과할 경우 CM hang으로 판단하여 Agent 및 하위 프로세스를 정리합니다. (기본값: 0) ※ 표준 출력을 우회하여 응답을 수신하므로, 응답 지연이 우려될 경우 0으로 설정합니다. |
Cluster $CM_SID.tip
1편: ProSync 양방향 설치편에서 설정하도록 했습니다.- 만약 파라미터가 적용되어 있지 않다면 CM까지 종료한 상태에서 파라미터 적용 후 CM 기동 수행
# node1 $CM_SID.tip CM_ID=0 # node2 $CM_SID.tip CM_ID=1 # node3 $CM_SID.tip CM_ID=0 # node4 $CM_SID.tip CM_ID=1
ProSync CM FailOver 모드 기동
- CM FailOver 동작에 등록해두면, prs_adm을 통한 정상적인 기동이 되지 않습니다.
- CM 명령을 통해 기동/정지를 수행합니다.
Source TAC (node1, node2)
- 최초 등록 시 Group 및 Agent 모두 DOWN 상태로 되어있습니다.
- 만약 Agent가 DEACT 상태로 되어 있다면,
--script로 등록한 파일을 확인 해야합니다.
※ 주의사항
Agent가 DEACT 상태로 되어 있다면, rc: 127 상태의 로그를 확인할 수 있습니다.1) 파일의 권한 오류
2) script 파일의 #!/bin/sh로 설정되어 있는지 확인 후 #!/bin/bash로 수정
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent1_12_34 DOWN /share/prosync4_12_34/bin/agent1_12_34.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent2_12_34 DOWN /share/prosync4_12_34/bin/agent2_12_34.sh, start retry cnt: 0
=====================================================================- CM 명령을 통해 Group을 기동합니다.
$ cmrctl start group --name grp_src_12_34 =================================== SUCCESS! =================================== Succeeded to request at each node to boot resources under the group(grp_src_12_34). Please use "cmrctl show group --name grp_src_12_34" to verify the result. ================================================================================
- Group이 정상적으로 기동 되었다면, node1과 node2의 Agent가 모두 UP 상태로 확인됩니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.65/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db12 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 agent agent1_12_34 UP /share/prosync4_12_34/bin/agent1_12_34.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.66/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db12 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 agent agent2_12_34 UP /share/prosync4_12_34/bin/agent2_12_34.sh, start retry cnt: 0
=====================================================================- ProSync Admin을 통해 ProSync Instance 상태를 확인합니다.
$ prs_adm 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 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] 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) Agent Process for proc[Apply], num[1] is not running. prs_12_34_llob (1) is running (prs_agent ID : agent1_12_34, HOST: 10.10.10.65, PORT: 7600)
- node1과 node2의 ProSync Agent, Instance 프로세스를 확인합니다.
# node1 $ ps -ef |grep 12_34 |grep -v grep tibero 1712460 1 0 03:26 ? 00:00:01 prs_agent agent1_12_34 tibero 1712564 1712460 0 03:26 ? 00:00:00 prs_ext prs_12_34 1 agent1_12_34 tibero 1712568 1712460 0 03:26 ? 00:00:00 prs_llob prs_12_34 1 agent1_12_34 # node2 $ ps -ef |grep 12_34 |grep -v grep tibero 1704500 1 0 03:26 ? 00:00:01 prs_agent agent2_12_34 tibero 1704556 1704500 0 03:26 ? 00:00:00 prs_ext prs_12_34 2 agent2_12_34
Target TAC (node3, node4)
- 최초 등록 시 Group 및 Agent 모두 DOWN 상태로 되어 있습니다.
- 만약 Agent가 DEACT 상태로 되어 있다면,
--script로 등록한 파일을 확인 해야합니다.
※ 주의사항
Agent가 DEACT 상태로 되어 있다면, rc: 127 상태의 로그를 확인할 수 있습니다.1) 파일의 권한 오류
2) script 파일의 #!/bin/sh로 설정되어 있는지 확인 후 #!/bin/bash로 수정
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent3_12_34 DOWN /share/prosync4_12_34/bin/prs_12_34_agent3.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 DOWN type: prosync (failover: ON)
cls0 agent agent4_12_34 DOWN /share/prosync4_12_34/bin/prs_12_34_agent4.sh, start retry cnt: 0
=====================================================================- CM 명령을 통해 Group을 기동합니다.
$ cmrctl start group --name grp_tar_12_34 =================================== SUCCESS! =================================== Succeeded to request at each node to boot resources under the group(grp_tar_12_34). Please use "cmrctl show group --name grp_tar_12_34" to verify the result. ================================================================================
- Group이 정상적으로 기동 되었다면, node3과 node4의 Agent가 모두 UP 상태로 확인됩니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 agent agent3_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent3.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 agent agent4_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent4.sh, start retry cnt: 0
=====================================================================- ProSync Admin을 통해 ProSync Instance 상태를 확인합니다.
$ prs_adm 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)
- node3과 node4의 ProSync Agent, Instance 프로세스를 확인합니다.
$ ps -ef |grep 12_34 |grep -v grep tibero 1719532 1 1 03:56 ? 00:00:00 prs_agent agent3_12_34 tibero 1719610 1719532 2 03:56 ? 00:00:00 prs_apply prs_12_34 1 agent3_12_34 $ ps -ef |grep 12_34 |grep -v grep tibero 1717765 1 2 03:56 ? 00:00:00 prs_agent agent4_12_34
B Set ProSync CM FailOver 구성
CM FailOver 스크립트 등록
- CM FailOver 스크립트의 경우 CM에 등록된 ProSync Agent를 SwitchOver 하기 위해 사용됩니다.
- ProSync Agent 별로 스크립트를 사용 해야합니다.
Source TAC (node3, node4)
- ProSync 엔진은 공유 파일 시스템에 있어, 노드 별로 각각 설정합니다.
prs34 cd $PRS_HOME/bin ls -lt |grep prs_[0-9] -rwxr-xr-x 1 tibero dba 1148 Mar 17 05:33 prs_1.sh -rwxr-xr-x 1 tibero dba 1148 Mar 17 05:33 prs_0.sh # node3의 스크립트 mv prs_0.sh agent1_34_12.sh # node4의 스크립트 mv prs_1.sh agent2_34_12.sh
node3
CM FailOver가 발생하면, Agent에 명령을 내리기 위한 스크립트를 설정합니다.
$PRS_HOME/bin/agent1_34_12.sh파일 내에 3개의 파라미터 설정
#!/bin/bash export TB_HOME=/tibero/tibero7 export PRS_HOME=/share/prosync4_34_12 AGENT_ID=agent1_34_12 ... 생략 ...
node4
CM FailOver가 발생하면, Agent에 명령을 내리기 위한 스크립트를 설정합니다.
$PRS_HOME/bin/agent2_34_12.sh파일 내에 3개의 파라미터 설정
#!/bin/bash export TB_HOME=/tibero/tibero7 export PRS_HOME=/share/prosync4_34_12 AGENT_ID=agent2_34_12 ... 생략 ...
Target TAC (node1, node2)
- ProSync 엔진은 공유 파일 시스템에 있어, 노드별로 각각 설정합니다.
prs34 cd $PRS_HOME/bin ls -lt |grep prs_[0-9] -rwxr-xr-x 1 tibero dba 1148 Mar 17 05:33 prs_1.sh -rwxr-xr-x 1 tibero dba 1148 Mar 17 05:33 prs_0.sh # node1의 스크립트 mv prs_0.sh agent3_34_12.sh # node2의 스크립트 mv prs_1.sh agent4_34_12.sh
node1
CM FailOver가 발생하면, Agent에 명령을 내리기 위한 스크립트를 설정합니다.
$PRS_HOME/bin/agent3_34_12.sh파일 내에 3개의 파라미터 설정
#!/bin/bash export TB_HOME=/tibero/tibero7 export PRS_HOME=/share/prosync4_34_12 AGENT_ID=agent3_34_12 ... 생략 ...
node2
CM FailOver가 발생하면, Agent에 명령을 내리기 위한 스크립트를 설정합니다.
$PRS_HOME/bin/agent4_34_12.sh파일 내에 3개의 파라미터 설정
#!/bin/bash export TB_HOME=/tibero/tibero7 export PRS_HOME=/share/prosync4_34_12 AGENT_ID=agent4_34_12 ... 생략 ...
CM Group 등록
Source TAC (node3, node4)
- CM에 GROUP을 추가하여, node3과 node4의 Agent를 Group에 등록합니다.
- A Set의 CM Group, Agent와 혼동에 주의합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.67/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db34 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 agent agent3_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent3.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.68/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db34 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 agent agent4_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent4.sh, start retry cnt: 0
=====================================================================- CM Group 등록은 한 쪽 노드에서 수행하면 됩니다.
$ cmrctl add group --name grp_src_34_12 --cname cls0 --grptype prosync --failover true Resource add success! (group, grp_src_34_12)
- CM Group은 Source와 Target을 따로 가져갑니다.
- 추출 프로세스가 Source, 반영 프로세스가 Target인 경우에 해당 합니다.
- 추출/반영 프로세스가 모두 Source에서 진행 된다면, Target에 설정할 필요는 없습니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent3_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent3.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent4_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent4.sh, start retry cnt: 0
=====================================================================Target TAC (node1, node2)
- CM에 GROUP을 추가하여, node1과 node2의 Agent를 Group에 등록합니다.
- A Set의 CM Group, Agent와 혼동에 주의합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.65/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db12 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 agent agent1_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent1.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.66/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db12 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 agent agent2_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent2.sh, start retry cnt: 0
=====================================================================- CM Group 등록은 한 쪽 노드에서 수행하면 됩니다.
$ cmrctl add group --name grp_tar_34_12 --cname cls0 --grptype prosync --failover true Resource add success! (group, grp_tar_34_12)
- CM Group은 Source와 Target을 따로 가져갑니다.
- 추출 프로세스가 Source, 반영 프로세스가 Target인 경우에 해당합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent1_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent1.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent2_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent2.sh, start retry cnt: 0
=====================================================================CM Agent 등록
Source TAC (node3, node4)
- Agent는 노드 별 CM의 Group에 각각 등록ㅍ
node3
- node3에 agent를 등록합니다.
- Agent 등록 시 아래의 옵션을 추가합니다.
- --name Agent이름
- --grpname Group이름
- --script 위에서 설정한 CM FailOver 스크립트 경로
- --failover true
$ cmrctl add agent --name agent1_34_12 --grpname grp_src_34_12 --script /share/prosync4_34_12/bin/agent1_34_12.sh Resource add success! (agent, agent1_34_12)
- Agent는 노드별 CM에서 각각 관리합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent3_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent3.sh, start retry cnt: 0
cls0 agent agent1_34_12 DOWN /share/prosync4_34_12/bin/agent1_34_12.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent4_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent4.sh, start retry cnt: 0
=====================================================================node4
- node4에 agent를 등록합니다.
- Agent 등록 시 아래의 옵션을 추가합니다.
- --name Agent이름
- --grpname Group이름
- --script 위에서 설정한 CM FailOver 스크립트 경로
- --failover true
$ cmrctl add agent --name agent2_34_12 --grpname grp_src_34_12 --script /share/prosync4_34_12/bin/agent2_34_12.sh Resource add success! (agent, agent2_34_12)
- Agent는 노드별 CM에서 각각 관리합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 생략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent3_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent3.sh, start retry cnt: 0
cls0 agent agent1_34_12 DOWN /share/prosync4_34_12/bin/agent1_34_12.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 생략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent4_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent4.sh, start retry cnt: 0
cls0 agent agent2_34_12 DOWN /share/prosync4_34_12/bin/agent2_34_12.sh, start retry cnt: 0
=====================================================================Target TAC (node1, node2)
- Agent는 노드 별 CM의 Group에 각각 등록합니다.
node1
- node1에 agent를 등록합니다.
- Agent 등록 시 아래의 옵션을 추가합니다.
- --name Agent이름
- --grpname Group이름
- --script 위에서 설정한 CM FailOver 스크립트 경로
- --failover true
$ cmrctl add agent --name agent3_34_12 --grpname grp_tar_34_12 --script /share/prosync4_12_34/bin/agent3_34_12.sh Resource add success! (agent, agent3_34_12)
- Agent는 노드별 CM에서 각각 관리합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent1_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent1.sh, start retry cnt: 0
cls0 agent agent3_34_12 DOWN /share/prosync4_34_12/bin/agent3_34_12.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent2_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent2.sh, start retry cnt: 0
=====================================================================node2
- node2에 agent를 등록합니다.
- Agent 등록 시 아래의 옵션을 추가합니다.
- --name Agent이름
- --grpname Group이름
- --script 위에서 설정한 CM FailOver 스크립트 경로
- --failover true
$ cmrctl add agent --name agent4_34_12 --grpname grp_tar_34_12 --script /share/prosync4_34_12/bin/agent4_34_12.sh Resource add success! (agent, agent4_34_12)
- Agent는 노드별 CM에서 각각 관리합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent1_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent1.sh, start retry cnt: 0
cls0 agent agent3_34_12 DOWN /share/prosync4_34_12/bin/agent3_34_12.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent2_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent2.sh, start retry cnt: 0
cls0 agent agent4_34_12 DOWN /share/prosync4_34_12/bin/agent4_34_12.sh, start retry cnt: 0
=====================================================================ProSync Agent Parameter
- Agent1~4 모두 CM과 통신을 위해 다음 파라미터를 추가합니다.
- 아래의 파라미터는 CM과 통신하며, CM의 제어를 받습니다.
- ProSync Admin을 통해 수동으로 Agent를 기동하지 않습니다.
USE_CM=Y PRS_AGENT_PROC_MAX_FAIL_CNT=10 PRS_AGENT_PROC_STARTUP_TIMEOUT=10 PRS_AGENT_PROC_STATUS_REPLY_TIMEOUT=10 PRS_AGENT_PROC_STATUS_INTERVAL=3 PRS_AGENT_CM_PROBE_TIMEOUT=0
| 파라미터 | 설명 |
|---|---|
| USE_CM | CM 사용 여부를 설정합니다. Y로 설정할 경우 하위 프로세스의 상태를 모니터링하고, 장애 발생 시 재기동을 수행합니다. 내부 장애 발생 시 cmrctl을 통해 정지 요청을 수행합니다. (기본값: N) |
| PRS_AGENT_PROC_MAX_FAIL_CNT | 하위 프로세스 장애 발생 시 상태를 보정하기 위해 재시도하는 최대 횟수를 설정합니다. (기본값: 10) |
| PRS_AGENT_PROC_STARTUP_TIMEOUT | 프로세스 기동 요청 이후 정상적으로 처리되기까지 대기하는 최대 시간(초)을 설정합니다. 기동 요청이 정상 처리되지 않을 경우, 설정한 시간만큼 대기한 후 재시도합니다. |
| PRS_AGENT_PROC_STATUS_REPLY_TIMEOUT | 하위 프로세스로부터 응답이 없을 경우 대기하는 최대 시간(초)을 설정합니다. 초과 시 해당 프로세스에 hang이 발생한 것으로 판단하고 재기동을 수행합니다. |
| PRS_AGENT_PROC_STATUS_INTERVAL | Agent 프로세스가 CM에게 cmrctl check 명령을 보내는 주기를 설정합니다. |
| PRS_AGENT_CM_PROBE_TIMEOUT | CM 상태 확인 시 대기하는 최대 시간(초)을 설정합니다. 0으로 설정할 경우 cmrctl 응답을 무한히 대기합니다. 설정값을 초과할 경우 CM hang으로 판단하여 Agent 및 하위 프로세스를 정리합니다. (기본값: 0) ※ 표준 출력을 우회하여 응답을 수신하므로, 응답 지연이 우려될 경우 0으로 설정합니다. |
Cluster $CM_SID.tip
1편: ProSync 양방향 설치편에서 설정하도록 했습니다.- 만약 파라미터가 적용되어 있지 않다면 CM까지 종료한 상태에서 파라미터 적용 후 CM 기동 수행
# node1 $CM_SID.tip CM_ID=0 # node2 $CM_SID.tip CM_ID=1 # node3 $CM_SID.tip CM_ID=0 # node4 $CM_SID.tip CM_ID=1
ProSync CM FailOver 모드 기동
- CM FailOver 동작에 등록해두면, prs_adm을 통한 정상적인 기동이 되지 않습니다.
- CM 명령을 통해 기동/정지를 수행합니다.
Source TAC (node3, node4)
- 최초 등록 시 Group 및 Agent 모두 DOWN 상태로 되어 있습니다.
- 만약 Agent가 DEACT 상태로 되어 있다면,
--script로 등록한 파일을 확인 해야 합니다.
※ 주의사항
Agent가 DEACT 상태로 되어 있다면, rc: 127 상태의 로그를 확인할 수 있습니다.1) 파일의 권한 오류
2) script 파일의 #!/bin/sh로 설정되어 있는지 확인 후 #!/bin/bash로 수정
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent3_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent3.sh, start retry cnt: 0
cls0 agent agent1_34_12 DOWN /share/prosync4_34_12/bin/prs_agent1_34_12.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent4_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent4.sh, start retry cnt: 0
cls0 agent agent2_34_12 DOWN /share/prosync4_34_12/bin/prs_agent2_34_12.sh, start retry cnt: 0
=====================================================================- CM 명령을 통해 Group을 기동합니다.
$ cmrctl start group --name grp_src_34_12 =================================== SUCCESS! =================================== Succeeded to request at each node to boot resources under the group(grp_src_34_12). Please use "cmrctl show group --name grp_src_34_12" to verify the result. ================================================================================
- Group이 정상적으로 기동 되었다면, node1과 node2의 Agent가 모두 UP 상태로 확인됩니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.67/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db34 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db340 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 UP type: prosync (failover: ON)
cls0 agent agent3_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent3.sh, start retry cnt: 0
cls0 agent agent1_34_12 UP /share/prosync4_34_12/bin/prs_agent1_34_12.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.68/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service db34 UP Database, Active Cluster (auto-restart: OFF)
cls0 db db341 UP(NRML) db34, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_tar_12_34 UP type: prosync (failover: ON)
cls0 group grp_src_34_12 UP type: prosync (failover: ON)
cls0 agent agent4_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent4.sh, start retry cnt: 0
cls0 agent agent2_34_12 UP /share/prosync4_34_12/bin/prs_agent2_34_12.sh, start retry cnt: 0
=====================================================================- ProSync Admin을 통해 ProSync Instance 상태를 확인합니다.
$ prs_adm 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 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] 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) Agent Process for proc[Apply], num[1] is not running. prs_34_12_llob (1) is running (prs_agent ID : agent1_34_12, HOST: 10.10.10.67, PORT: 6600)
- node3과 node4의 ProSync Agent, Instance 프로세스를 확인합니다.
# node3 $ ps -ef |grep 34_12 |grep -v grep tibero 1735739 1 1 04:26 ? 00:00:00 prs_agent agent1_34_12 tibero 1735812 1735739 0 04:26 ? 00:00:00 prs_ext prs_34_12 1 agent1_34_12 tibero 1735816 1735739 0 04:26 ? 00:00:00 prs_llob prs_34_12 1 agent1_34_12 # node4 $ ps -ef |grep 34_12 |grep -v grep tibero 1733840 1 1 04:26 ? 00:00:00 prs_agent agent2_34_12 tibero 1733891 1733840 0 04:26 ? 00:00:00 prs_ext prs_34_12 2 agent2_34_12
Target TAC (node1, node2)
- 최초 등록 시 Group 및 Agent 모두 DOWN 상태로 되어 있습니다.
- 만약 Agent가 DEACT 상태로 되어 있다면,
--script로 등록한 파일을 확인 해야합니다.
※ 주의사항
Agent가 DEACT 상태로 되어 있다면, rc: 127 상태의 로그를 확인할 수 있습니다.1) 파일의 권한 오류
2) script 파일의 #!/bin/sh로 설정되어 있는지 확인 후 #!/bin/bash로 수정
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent1_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent1.sh, start retry cnt: 0
cls0 agent agent3_34_12 DOWN /share/prosync4_34_12/bin/prs_agent3_34_12.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 DOWN type: prosync (failover: ON)
cls0 agent agent2_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent2.sh, start retry cnt: 0
cls0 agent agent4_34_12 DOWN /share/prosync4_34_12/bin/prs_agent4_34_12.sh, start retry cnt: 0
=====================================================================- CM 명령을 통해 Group을 기동합니다.
$ cmrctl start group --name grp_tar_34_12 =================================== SUCCESS! =================================== Succeeded to request at each node to boot resources under the group(grp_tar_34_12). Please use "cmrctl show group --name grp_tar_34_12" to verify the result. ================================================================================
- Group이 정상적으로 기동 되었다면, node3과 node4의 Agent가 모두 UP 상태로 확인됩니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db120 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 UP type: prosync (failover: ON)
cls0 agent agent1_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent1.sh, start retry cnt: 0
cls0 agent agent3_34_12 UP /share/prosync4_34_12/bin/prs_agent3_34_12.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
... 중략 ...
cls0 db db121 UP(NRML) db12, /tibero/tibero7, failed retry cnt: 0
cls0 group grp_src_12_34 UP type: prosync (failover: ON)
cls0 group grp_tar_34_12 UP type: prosync (failover: ON)
cls0 agent agent2_12_34 UP /share/prosync4_12_34/bin/prs_12_34_agent2.sh, start retry cnt: 0
cls0 agent agent4_34_12 UP /share/prosync4_34_12/bin/prs_agent4_34_12.sh, start retry cnt: 0
=====================================================================- ProSync Admin을 통해 ProSync Instance 상태를 확인합니다.
$ prs_adm 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)
- node1과 node2의 ProSync Agent, Instance 프로세스를 확인합니다.
# node1 $ ps -ef |grep 34_12 |grep -v grep tibero 1785507 1 1 04:28 ? 00:00:00 prs_agent agent3_34_12 tibero 1785637 1785507 1 04:28 ? 00:00:00 prs_apply prs_34_12 1 agent3_34_12 # node2 $ ps -ef |grep 34_12 |grep -v grep tibero 1737778 1 1 04:28 ? 00:00:00 prs_agent agent4_34_12