오라클 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/



+ Recent posts