DB2 HADR 구성 환경에서 Cluster를 구성하기 위해 db2haicu 를 실행하면 여러 에러들이 발생하곤 한다. xml 설정파일에 설정한 값이 잘못되었거나, 환경이 잘못되었거나 등등의 이유로 대부분 발생한다.

이 중 RSCT가 사용하는 db2 모니터링 script 관련한 오류에 대해 정리를 해 본다.

1. 진단로그(db2diag.log) 오류 메시지

2011-10-06-13.29.04.814926+540 E522666E818         LEVEL: Error
PID     : 21846                TID  : 47753254935648PROC : db2haicu
INSTANCE: hadr97               NODE : 000
FUNCTION: DB2 Common, SQLHA APIs for DB2 HA Infrastructure, sqlhaAddResource, probe:1600
MESSAGE : ECF=0x90000542=-1879046846=ECF_SQLHA_CREATE_GROUP_FAILED
          Create group failed
DATA #1 : String, 35 bytes
Error during vendor call invocation
DATA #2 : unsigned integer, 4 bytes
37
DATA #3 : String, 36 bytes
db2_hadr97_cluster2.localdomain_0-rg
DATA #4 : unsigned integer, 8 bytes
1
DATA #5 : signed integer, 4 bytes
98343
DATA #6 : String, 186 bytes
Line # : 6719---cluster2.localdomain: 2661-011
The command specified for attribute MonitorCommand is NULL, not a absolute path, does not exist or has insufficient permissions to be run.

2011-10-06-13.29.04.815548+540 E523485E365         LEVEL: Error
PID     : 21846                TID  : 47753254935648PROC : db2haicu
INSTANCE: hadr97               NODE : 000
FUNCTION: DB2 Common, SQLHA APIs for DB2 HA Infrastructure, sqlhaCreateDB2Partition, probe:80
RETCODE : ECF=0x90000542=-1879046846=ECF_SQLHA_CREATE_GROUP_FAILED
          Create group failed

2. 원인

   db2haicu 를 실행하여 cluster를 구성할 때, db2 모니터링 script가 실행이 된다. 그런데 해당 위치에 script가 존재하지 않아 위와같이 에러가 발생하게 된다.

3. 해결책

    script가 존재하는지 확인 후, 없으면 db2cptsa를 이용하여 script를 해당 경로에 생성해 준다.

명령어
#> ls –al /usr/sbin/rsct/sapolicies/db2

결과


명령어
#> 엔진_설치_위치/install/tsamp/db2cptsa

확인
#> ls –al /usr/sbin/rsct/sapolicies/db2

결과

-r-xr-xr-x 1 root root  3183  4월  1  2011 db2V97_monitor.ksh
-r-xr-xr-x 1 root root  6227  4월  1  2011 db2V97_start.ksh
-r-xr-xr-x 1 root root  4566  4월  1  2011 db2V97_stop.ksh
-r-xr-xr-x 1 root root  1114  4월  1  2011 forceAllApps
-r-xr-xr-x 1 root root 13980  4월  1  2011 hadrV97_monitor.ksh
-r-xr-xr-x 1 root root  5517  4월  1  2011 hadrV97_start.ksh
-r-xr-xr-x 1 root root  4255  4월  1  2011 hadrV97_stop.ksh
-r-xr-xr-x 1 root root  7121  4월  1  2011 mountV97_monitor.ksh
-r-xr-xr-x 1 root root  7087  4월  1  2011 mountV97_start.ksh
-r-xr-xr-x 1 root root  7948  4월  1  2011 mountV97_stop.ksh
-r-xr-xr-x 1 root root  7101  4월  1  2011 nfsserverctrl-server
-r-xr-xr-x 1 root root  5554  4월  1  2011 rovingV97_failover.ksh

DB2 관련 테스트 작업을 하다 DB2 설치 이미지 내부를 살펴보면서 V9.7에서도 쉘을 이용하여 tsa 버전을 확인하는 법을 알게 되었다.

설치 이미지의 압축을 풀면 server/db2/운영체제/install 이라는 디렉토리가 존재한다.

하위에 db2chktsa 라는 쉘이 존재한다. 이 shell을 통해 시스템 내에 설치된 버전 및 db2 설치 이미지에 있는 버전을 확인할 수 있다.

설치된 tsa 버전 확인

명령어
#>./db2chktsa -m

결과
TSAMP_VERSION=3.2.1.1 

설치 이미지에 있는 tsa 버전 확인

명령어
#>./db2chktsa -c

결과
TSAMP_VERSION=3.2.1.1 

설치를 하지 않았는데도 설치 버전이 나온다.

M옵션은 “라이센스를 갖고 있는 시스템 내에 설치된 SA MP” 그리고 “미디어 내에 try & buy 라이센스를 갖는 SAMP” 를 확인하는 옵션으로 기술되어 있다. (설치된 것 이외에도 미디어에 있는 버전도 보여 준다는 의미인 듯.)

C옵션은 “미디어에 있는 SA MP 및 설치 사전 조건"”을 확인하는 옵션으로 기술되어 있다.

차후 HADR등등의 이중화 구성된 DB2 환경에서는 위와 같은 방법으로 버전 확인할 수 있다.

DB2 V9.5부터 Tivoli System Automation Multiplaform 제품이 포함되어 DB2 설치 시 TSAMP가 같이 설치된다. (설치 옵션에서 –f NOTSAMP 옵션을 주면 TSAMP가 설치되지 않는다)

TSAMP 는 DB2 HADR이 구성된 이중화 환경에서 같이 많이 사용되는데 최근 DB2 HADR 관련 기술지원을 하면서 TSAMP 버전에 대해 확인이 필요해 어떻게 확인해야되는지 찾아본 적이 있다.

pureScale이 탑재된 V9.8에서는 설치이미지에 db2cktsa라는 쉘이 있어서 설치이미지에 포함된 TSAMP버전과 OS에 설치된 TSAMP 버전을 확인할 수 있었다. 그런데 V9.7에서는 이 쉘이 빠져있어서 TSAMP 버전 확인이 어렵다.

이미 설치된 TSAMP버전은 OS명령어 (리눅스 경우는 rpm –qa, AIX는 lslpp  -l, 등)을 통해 확인을 한다.

 

리눅스 명령어 (예)

#> rpm -qa | grep -i sam.sappolicy

 

DB2 설치 이미지에 포함된 TSAMP 버전은 다음과 같이 확인한다.

#> cd DB2설치_파일/db2/운영체제명/tsamp/운영체제명/CPU타입/

#> ls –al sam*

      sam-3.1.0.6-10046.i386.rpm

+ Recent posts