CM Failover 기능 사용
1. Agent 설치
prs_install_agent.cfg 예시
AGENT_CNT=4
AGENT_ID_0=agent1
AGENT_HOST_0=172.19.0.11
AGENT_PORT_0=7600
AGENT_CM_GROUP_0=CM1
AGENT_CM_ID_0=0
AGENT_ID_1=agent2
AGENT_HOST_1=172.19.0.12
AGENT_PORT_1=7700
AGENT_CM_GROUP_1=CM1
AGENT_CM_ID_1=1
AGENT_ID_2=agent3
AGENT_HOST_2=172.19.0.13
AGENT_PORT_2=7800
AGENT_CM_GROUP_2=CM2
AGENT_CM_ID_2=0
AGENT_ID_3=agent4
AGENT_HOST_3=172.19.0.14
AGENT_PORT_3=7900
AGENT_CM_GROUP_3=CM2
AGENT_CM_ID_3=1agent 설치 및 설치 결과 예시
2. CM Failover 스크립트 설정
이 스크립트 파일에는 Agent 기동을 위한 환경 변수를 설정해야 하며, 반드시 TB_HOME ,AGENT_ID 등을환경에 맞게 수정해야 한다.
예시: $PRS_HOME/bin/prs_0.sh
3. Agent Parameter 설정
CM Failover 기능을 사용하기 위해 prs_agent_<agent_id>.cfg 파일에 다음과 같은 파라미터를 설정한다.
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으로 설정한다.
agent config file 설정 예시
예시 : $PRS_HOME/config/prs_agent_agent1.cfg
4. Instance 설치
prs_install.cfg 설정 예시
instance 설치 및 설치 결과 예시
5. CM 설정
5.1. tibero 기동 종료
5.2. cm 기동 종료
5.3. cm tip file에 cm_id 추가
$TB_HOME/config 예시
cm_<$TB_SID>.tip file들을 열어 맨 윗줄에 CM_ID를 추가해준다.
CM_ID는 agent 설치 시 prs_install_agent.cfg에 작성한 내용을 기반으로 추가한다.
cm.tibero1.tip 예시
5.4. cm 기동
5.5. tibero 기동
5.6. cm 확인
cm info 예시
7. CM group 등록
agent 설치 시, prs_install_agent.cfg에 작성한 내용을 기반으로 CM group을 추가한다.
name
string
그룹 리소스 이름이다. (unique, 필수)
cname
string
해당 그룹 리소스가 속할 cluster 리소스 이름이다. (필수)
grptype
string
그룹의 종류를 나타내기 위한 용도이다. (필수)
failover
string
agent가 종료되었을때 failover 기능 사용 여부이다. (default: true)
예시
등록에 성공하면 다음과 같은 문구가 나온다.
8. CM agent 등록
name
string
agent 리소스 이름이다. (unique, 필수)
grpname
string
agent 리소스가 속할 그룹 리소스 이름이다 (필수)
script
string(directory path)
agent cmd를 실행시킬 script가 위치한 절대경로이다 (필수)
pubnet
string
public 용도로 사용할 네트워크 리소스 이름이다. dependency를 추가하려면 입력해야한다.
retry_cnt
integer
최대 retry 시도 횟수이다. (default: 3)
예시
주의
prs_0.sh 파일은 기본적으로 $PRS_HOME/bin에 위치하고 있다.
cm에서 해당 파일을 실행할 수 있는 권한이 있어야 한다.
등록에 성공하면 다음과 같은 문구가 나온다.
cm을 확인해보면 다음과 같이 group과 agent가 등록된 info를 확인할 수 있다.
cm info 예시
5.9. CM group 기동
cm을 통해 prosync를 기동하고 failover기능을 사용하기 위해 cm group을 기동시킨다.
결과 예시
6. Prosync 기동 확인
admin process를 통해 prosync의 기동을 확인한다.
cm failover 기능을 사용하는 경우 $PRS_HOME/var에 cm을 통해 agent를 기동한 log파일들이 생긴다.
cmagent.log
prs_cm_<$agent_id>.log
prs_cm_sh_err_<$agent_id>.log
Last updated
