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=1

agent 설치 및 설치 결과 예시


2. CM Failover 스크립트 설정

이 스크립트 파일에는 Agent 기동을 위한 환경 변수를 설정해야 하며, 반드시 TB_HOME ,AGENT_ID 등을환경에 맞게 수정해야 한다.

예시: $PRS_HOME/bin/prs_0.sh

circle-info

참고

script 내의 source 명령어는 POSIX 표준 sh에서는 존재하지 않는다.

만약 CM에서 해당 스크립트를 실행하는데 권한에 문제가 없는데도 127 에러가 발생한다면, /bin/sh/bin/bash로 변경하면 해결된다.


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으로 설정한다.

circle-info

참고

USE_CMY로 설정한 경우에만 PRS_AGENT_PROC_MAX_FAIL_CNT, PRS_AGENT_PROC_STARTUP_TIMEOUT, PRS_AGENT_PROC_STATUS_REPLY_TIMEOUT, PRS_AGENT_PROC_STATUS_INTERVAL, PRS_AGENT_CM_PROBE_TIMEOUT 파라미터가 동작한다.

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을 추가한다.

Key
Value Type
설명

name

string

그룹 리소스 이름이다. (unique, 필수)

cname

string

해당 그룹 리소스가 속할 cluster 리소스 이름이다. (필수)

grptype

string

그룹의 종류를 나타내기 위한 용도이다. (필수)

failover

string

agent가 종료되었을때 failover 기능 사용 여부이다. (default: true)

예시

등록에 성공하면 다음과 같은 문구가 나온다.


8. CM agent 등록

Key
Value Type
설명

name

string

agent 리소스 이름이다. (unique, 필수)

grpname

string

agent 리소스가 속할 그룹 리소스 이름이다 (필수)

script

string(directory path)

agent cmd를 실행시킬 script가 위치한 절대경로이다 (필수)

pubnet

string

public 용도로 사용할 네트워크 리소스 이름이다. dependency를 추가하려면 입력해야한다.

retry_cnt

integer

최대 retry 시도 횟수이다. (default: 3)

예시

circle-exclamation

등록에 성공하면 다음과 같은 문구가 나온다.

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