본문 바로가기
OraclE

Oracle RAC 마스터 노드 찾기 (find Master Node)

by 타마마임팩트_쫀 2017. 9. 14.

오라클 RAC에 두가지 유형의 마스터가 있는데,

하나는 Clusterware 레벨의 마스터고, 하나는 특정 리소스 또는 블록, 객체를 위한 마스터 노드가 있다.



Clusterware 레벨의 마스터 노드를 찾는 방법은 아래와 같은 방법이 있다.

$ cat $ORA_CRS_HOME/log/`hostname`/cssd/ocssd* |grep master

or

$ for x in `ls -tr $ORA_CRS_HOME/log/`hostname`/cssd/ocssd* `; do grep -i "master node" $x ; done | tail -1 


또 다른 방법은 OCR 자동 백업을 이용한 방법이다.

OCR 자동 백업은 마스터 노드에서 수행 되고, 실패시 새로운 마스터 노드에서 백업이 생성된다.

[HOST01]oracle@host01:/home/oracle/DBA/hoon/mon> ocrconfig -showbackup

host02     2017/09/14 12:01:14     /u01/app/12.1.0.2/grid/cdata/cluster-clu1/backup00.ocr     1146027977

host02     2017/09/14 08:01:13     /u01/app/12.1.0.2/grid/cdata/cluster-clu1/backup01.ocr     1146027977

host02     2017/09/14 04:01:12     /u01/app/12.1.0.2/grid/cdata/cluster-clu1/backup02.ocr     1146027977

host02     2017/09/13 04:01:09     /u01/app/12.1.0.2/grid/cdata/cluster-clu1/day.ocr     1146027977

host02     2017/09/04 04:00:34     /u01/app/12.1.0.2/grid/cdata/cluster-clu1/week.ocr     1146027977

host01     2015/06/01 12:17:26     /u01/app/12.1.0.2/grid/cdata/cluster-clu1/backup_20150601_121726.ocr     1146027977

host02     2015/06/01 11:14:17     /u01/app/12.1.0.2/grid/cdata/cluster-clu1/backup_20150601_111417.ocr     0



그럼 리소스에 대한 마스터는 어떻게 찾을까?

select distinct o.owner, o.object_name, DECODE(m.CURRENT_MASTER,0,'host01',1,'host02') AS CURRENT_NODE

from   dba_objects o, v$gcspfmaster_info m

where o.data_object_id = m.data_object_id

and object_name = 'MEMBERS';


OWNER        OBJECT_NAME                    CURRENT_NODE

------------ ------------------------------ --------------------

SCOTT        MEMBERS                        host01


리소스 마스터를 메뉴얼로 변경하는 방법은 아래와 같다.

 oradebug lkdebug -m pkey <objectid>

예) members 의 오브젝트 아이디가 253672 라면 

     oradebug lkdebug -m pkey 253672


리마스터링에 대한 자세한 내용은 다음 사이트를 참조 하자.

http://oracleinaction.com/dynamic-remastering/