문서유형ㅣ기술정보
분야ㅣ설치
적용제품버전ㅣTibero 7FS04PS
문서번호ㅣPINTI009
개요
- 1편 : Prosync 설치 준비 및 Agent 설치
- 2편 : Instanct 설치
- 3편 : CM Failover 설정
- 4편 : CM Failover 테스트
테스트 환경
| 구분 | OS | IP | DBMS Version | Prosync Version |
|---|---|---|---|---|
| Source_TAC0 | Rocky Linux release 8.10 | 10.10.10.61 | Tibero 7.2.4 (build 305455) | 4.6.0 (build 308985) |
| Source_TAC1 | Rocky Linux release 8.10 | 10.10.10.62 | Tibero 7.2.4 (build 305455) | 4.6.0 (build 308985) |
| Target_TAC0 | Rocky Linux release 8.10 | 10.10.10.63 | Tibero 7.2.4 (build 305455) | 4.6.0 (build 308985) |
| Target_TAC1 | Rocky Linux release 8.10 | 10.10.10.64 | Tibero 7.2.4 (build 305455) | 4.6.0 (build 308985) |
참고
Prosync CM Failover 기능은 Prosync 4.3 이상 버전부터 지원됩니다.
방법
CM FAILOVER 설정
DB & CM 종료
모든 서버 tibero 와 cm process를 종료합니다.
$ tbdown immediate Tibero instance terminated (IMMEDIATE mode). $ tbcm -d CM DOWN SUCCESS!
$CM_SID.tip 파일 수정
$TB_HOME/config/$CM_SID.tip 맨 윗줄에 CM_ID 추가를 추가합니다. CM_ID는 agent 설치 시 prs_install_agent.cfg에 설정한 AGENT_CM_ID 기반으로 작성합니다.
vi $TB_HOME/config/$CM_SID.tip ############ TAC (Tibero Active Cluster) #### must ## node1 CM_ID=0 CM_NAME=cm0 CM_UI_PORT=28629 CM_RESOURCE_FILE=/share/tibero_engine/config/cm0_res_file ### recommand CM_HEARTBEAT_EXPIRE=300 CM_WATCHDOG_EXPIRE=290 CM_ENABLE_FAST_NET_ERROR_DETECTION=Y
CM & DB 기동
모든 서버의 cm과 tibero process를 기동합니다.
$ tbcm -b CM Guard daemon started up. import resources from '/share/tibero_engine/config/cm0_res_file'... TBCM 7.1.1 (Build 305455) TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Tibero cluster manager started up. Local node name is (cm0:28629). $ tbboot Change core dump dir to /share/tibero_engine/bin/prof. Listener port = 8629 Tibero 7 TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Tibero instance started up (NORMAL mode).
CM 확인
cmrctl show all을 이용하여 상태를 확인합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.61/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service source_tac UP Database, Active Cluster (auto-restart: OFF)
cls0 db source_tac0 UP(NRML) source_tac, /share/tibero_engine, failed retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.62/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service source_tac UP Database, Active Cluster (auto-restart: OFF)
cls0 db source_tac1 UP(NRML) source_tac, /share/tibero_engine, failed retry cnt: 0
=====================================================================
CM GROUP 등록
agent 설치 시, prs_install_agent.cfg에 작성한 내용을 기반으로 CM GROUP을 추가합니다. 한쪽 노드에서만 수행합니다.
<구문> cmrctl add group --name <group_name> --cname <cluser_name> --grptype <type> --failover <true|false> <예시> $ cmrctl add group --name SRC_CM --cname cls0 --grptype prosync Resource add success! (group, SRC_CM) $ cmrctl add group --name TAR_CM --cname cls0 --grptype prosync Resource add success! (group, TAR_CM)
CM AGENT 등록
agent 설치 시, prs_install_agent.cfg에 작성한 내용을 기반으로 CM AGENT을 추가합니다. 양쪽 노드에서 각각 수행합니다.
<구문> cmrctl add agent --name <agent_name> --grpname <group_name> --script <directory_path> --pubnet <public_network_resource_name> --retry_cnt <retry_cnt> <예시> $ cmrctl add agent --name src_agent1 --grpname SRC_CM --script $PRS_HOME/bin/prs_0.sh Resource add success! (agent, src_agent1) $ cmrctl add agent --name src_agent2 --grpname SRC_CM --script $PRS_HOME/bin/prs_1.sh Resource add success! (agent, src_agent2) $ cmrctl add agent --name tar_agent1 --grpname TAR_CM --script $PRS_HOME/bin/prs_0.sh Resource add success! (agent, tar_agent1) $ cmrctl add agent --name tar_agent2 --grpname TAR_CM --script $PRS_HOME/bin/prs_1.sh Resource add success! (agent, tar_agent2)
CM 등록 확인
cmrctl show all 명령어를 이용하여 GROUP & AGENT 등록 상태를 확인합니다.
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.61/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service source_tac UP Database, Active Cluster (auto-restart: OFF)
cls0 db source_tac0 UP(NRML) source_tac, /share/tibero_engine, failed retry cnt: 0
cls0 group SRC_CM DOWN type: prosync (failover: ON)
cls0 agent src_agent1 DOWN /share/prosync4/bin/prs_0.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.62/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service source_tac UP Database, Active Cluster (auto-restart: OFF)
cls0 db source_tac1 UP(NRML) source_tac, /share/tibero_engine, failed retry cnt: 0
cls0 group SRC_CM DOWN type: prosync (failover: ON)
cls0 agent src_agent2 DOWN /share/prosync4/bin/prs_1.sh, start retry cnt: 0
=====================================================================참고
agent가 DEACT 상태일 경우 $PRS_HOME/var/cmagent.log 를 확인하여 rc 결과값을 확인한다.
rc 127일 경우 $PRS_HOME/bin/prs_0.sh 의 실행 권한을 수정하거나
/bin/sh를/bin/bash로 변경하면 해결된다.deact 상태를 해제하는 명령어는 다음과 같다.
$ cmrctl act agent --name <AGENT_ID>
CM GROUP 기동
cm을 통해 prosync를 기동하고 failover 기능을 사용하기 위해 cm group을 기동합니다.
$ cmrctl start group --name SRC_CM
=================================== SUCCESS! ===================================
Succeeded to request at each node to boot resources under the group(SRC_CM).
Please use "cmrctl show group --name SRC_CM" to verify the result.
================================================================================
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.61/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service source_tac UP Database, Active Cluster (auto-restart: OFF)
cls0 db source_tac0 UP(NRML) source_tac, /share/tibero_engine, failed retry cnt: 0
cls0 group SRC_CM UP type: prosync (failover: ON)
cls0 agent src_agent1 UP /share/prosync4/bin/prs_0.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.62/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service source_tac UP Database, Active Cluster (auto-restart: OFF)
cls0 db source_tac1 UP(NRML) source_tac, /share/tibero_engine, failed retry cnt: 0
cls0 group SRC_CM UP type: prosync (failover: ON)
cls0 agent src_agent2 UP /share/prosync4/bin/prs_1.sh, start retry cnt: 0
=====================================================================
$ cmrctl start group --name TAR_CM
=================================== SUCCESS! ===================================
Succeeded to request at each node to boot resources under the group(TAR_CM).
Please use "cmrctl show group --name TAR_CM" to verify the result.
================================================================================
$ cmrctl show all
Resource List of Node cm0
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net0 UP (private) 10.10.10.63/29000
COMMON cluster cls0 UP inc: net0, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service target_tac UP Database, Active Cluster (auto-restart: OFF)
cls0 db target_tac0 UP(NRML) target_tac, /share/tibero_engine, failed retry cnt: 0
cls0 group TAR_CM UP type: prosync (failover: ON)
cls0 agent tar_agent1 UP /share/prosync4/bin/prs_0.sh, start retry cnt: 0
=====================================================================
Resource List of Node cm1
=====================================================================
CLUSTER TYPE NAME STATUS DETAIL
----------- -------- -------------- -------- ------------------------
COMMON network net1 UP (private) 10.10.10.64/29000
COMMON cluster cls0 UP inc: net1, pub: N/A
cls0 file cls0:0 UP /share/tac/CMFILE/CMFILE
cls0 service target_tac UP Database, Active Cluster (auto-restart: OFF)
cls0 db target_tac1 UP(NRML) target_tac, /share/tibero_engine, failed retry cnt: 0
cls0 group TAR_CM UP type: prosync (failover: ON)
cls0 agent tar_agent2 UP /share/prosync4/bin/prs_1.sh, start retry cnt: 0
=====================================================================
prosync 기동 확인
prosync admin process를 통해 prosync 기동 상태를 확인합니다.
$ prs_adm ProSync 4 - Admin Utility TmaxData Corporation Copyright (c) 2024-. All rights reserved. Admin> status prs_agent ID: src_agent1, HOST: 10.10.10.61, PORT: 7600, CM_GROUP: SRC_CM, CM_ID: 0 is running prs_agent ID: src_agent2, HOST: 10.10.10.62, PORT: 7700, CM_GROUP: SRC_CM, CM_ID: 1 is running prs_agent ID: tar_agent1, HOST: 10.10.10.63, PORT: 7800, CM_GROUP: TAR_CM, CM_ID: 0 is running prs_agent ID: tar_agent2, HOST: 10.10.10.64, PORT: 7900, CM_GROUP: TAR_CM, CM_ID: 1 is running Instance ID: [PRS_FAILOVER] PRS_FAILOVER_ext1 (1) is running (prs_agent ID : src_agent1, HOST: 10.10.10.61, PORT: 7600) PRS_FAILOVER_ext2 (2) is running (prs_agent ID : src_agent2, HOST: 10.10.10.62, PORT: 7700) PRS_FAILOVER_apply1 (1) is running (prs_agent ID : tar_agent1, HOST: 10.10.10.63, PORT: 7800) PRS_FAILOVER_llob (1) is running (prs_agent ID : src_agent1, HOST: 10.10.10.61, PORT: 7600)