데이터베이스 비정상 종료 시, 클러스터 멤버를 통한 구동(복구) 구동 절차


1.데이터베이스 비정상 종료
데이터베이스 시스템에 shutdown에 대한 명령을 주지 않았음에도, 어떠한 요인으로 인하여 gmaster프로세서가 종료 된 상태


2.현상
ERR-RD000(13034): Service is not available

ERR-HY000(11031): Unable to attach the shared memory segment : sthAttach() returned errno(13)


3.데이터베이스 비정상 종료 확인
gmaster 프로세서가 구동되어 있지 않고 , 골디락스 system.trc 가장 최신 로그에 system shutdown에 대한 내용이 없음
$ ps -ef | grep $LOGNAME | grep gmaster
$ vi $GOLDILOCKS_DATA/trc/system.trc


4.클러스터 멤버를 통한 구동(복구) 절차
step1) 메모리 정리
해당 장비에 데이터베이스가 설치 된 OS계정에서 골디락스 관련 메모리를 정리한다.
ipcs -m | grep $LOGNAME | awk '{print "ipcrm -m " $2}' | sh -v
ipcs -q | grep $LOGNAME | awk '{print "ipcrm -q " $2}' | sh -v
ipcs -s | grep $LOGNAME | awk '{print "ipcrm -s " $2}' | sh -v

step2) 데이터베이스 구동 (LOCAL OPEN)
$ gsql sys gliese --as sysdba

gSQL > startup

step3) 클러스터 시스템 조인
비정상 종료 된 멤버 외, 정상 구동중인 클러스터 시스템에 JOIN.
gSQL> alter system join database;

ERR-42000(16405): of the total '1' tables in the database, '1' tables need to be rebalanced
System altered.

step4) 데이터베이스 리발란스 및 데이터 확인
rebalance가 필요한 경우 아래의 명령어로 리발란스 수행.
gSQL> alter database rebalance;

Database altered.

step5) Cluster system의 coordinator 확인
gSQL> select x.LOCAL_MEMBER_NAME, y.IS_GLOBAL_COORD, y.IS_DOMAIN_COORD from x$instance x, x$cluster_member@local y where x.LOCAL_MEMBER_POSITION = y.MEMBER_POSITION;

LOCAL_MEMBER_NAME IS_GLOBAL_COORD IS_DOMAIN_COORD
----------------- --------------- ---------------
G1N1              FALSE           FALSE          
G1N2              TRUE            TRUE           

2 rows selected.

step6) G1N1를 coordinator로 변경
G1N1가 아닌 멤버가 coordinator일 경우, 현재 coordinator인 멤버의 데이터베이스를 재구동하여 G1N1에게 coordinator가 넘어갈 수 있도록 한다.
[G1N2]
gSQL> shutdown
gSQL> startup
gSQL> alter system join database;

gSQL> select x.LOCAL_MEMBER_NAME, y.IS_GLOBAL_COORD, y.IS_DOMAIN_COORD from x$instance x, x$cluster_member@local y where x.LOCAL_MEMBER_POSITION = y.MEMBER_POSITION;

LOCAL_MEMBER_NAME IS_GLOBAL_COORD IS_DOMAIN_COORD
----------------- --------------- ---------------
G1N1              TRUE            TRUE           
G1N2              FALSE           FALSE



+ Recent posts