Oracle RAC 마스터 노드 찾기 (find Master Node)
오라클 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/