【OCR】使用ocrdump工具獲取叢集登錄檔(OCR)的詳細內容

secooler發表於2010-11-10
Oracle的OCR(Oracle Cluster Registry)稱作Oracle叢集登錄檔,OCR提供了叢集軟體與其他應用程式程式之間共享資訊的途徑。OCR記錄了叢集軟體所管理資源的資訊,以鍵值對的樹狀結構進行儲存。

Oracle提供了ocrdump工具用來獲取OCR的內容,透過了解其結構和內容有助於對OCR進行深入的瞭解。

1.ocrdump工具自帶的幫助資訊
[root@rac2 crs]# ocrdump -help
Name:
        ocrdump - Dump contents of Oracle Cluster Registry to a file.

Synopsis:
        ocrdump [|-stdout] [-backupfile ] [-keyname ] [-xml] [-noheader]

Description:
        Default filename is OCRDUMPFILE. Examples are:

        prompt> ocrdump
        writes cluster registry contents to OCRDUMPFILE in the current directory

        prompt> ocrdump MYFILE
        writes cluster registry contents to MYFILE in the current directory

        prompt> ocrdump -stdout -keyname SYSTEM
        writes the subtree of SYSTEM in the cluster registry to stdout

        prompt> ocrdump -stdout -xml
        writes cluster registry contents to stdout in xml format

Notes:
        The header information will be retrieved based on best effort basis.
        A log file will be created in
        $ORACLE_HOME/log//client/ocrdump_.log. Make sure
        you have file creation privileges in the above directory before
        running this tool.


透過這個幫助提示文件可以對用法有一個比較全面的瞭解。

2.使用ocrdump生成OCR的轉儲檔案
注意,由於Oracle 10.2.0.1的Bug所限,在使用該工具之前需要將Oracle叢集軟體升級到10.2.0.4(當然,如果OCR的備份檔案是存放在OCR相容的儲存裝置上,將不會觸發Bug,因此也不用對其進行升級)。有關該Bug的更多描述請參見《【OCR】無法轉儲OCR備份檔案內容——PROT-302: Failed to initialize ocrdump》(http://space.itpub.net/519536/viewspace-677936)。
1)確定Oracle叢集軟體為10.2.0.4
[root@rac2 ~]# /oracle/app/crs/bin/crsctl query crs softwareversion
CRS software version on node [rac2] is [10.2.0.4.0]

2)獲取OCR的備份目錄資訊
[root@rac2 ~]# ocrconfig -showbackup

rac2     2010/11/10 04:33:24     /oracle/app/crs/cdata/crs

rac2     2010/11/10 01:08:28     /oracle/app/crs/cdata/crs

rac2     2010/11/09 21:43:20     /oracle/app/crs/cdata/crs

rac2     2010/11/09 21:43:20     /oracle/app/crs/cdata/crs

rac1     2010/11/06 00:57:14     /oracle/app/crs/cdata/crs

3)獲取OCR備份目錄中的OCR備份檔案
[root@rac2 ~]# cd /oracle/app/crs/cdata/crs
[root@rac2 crs]# ls -ltr
total 23560
-rw-r--r-- 1 root root 4812800 Nov  9 21:43 backup02.ocr
-rw-r--r-- 1 root root 4812800 Nov  9 21:43 day.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 01:08 backup01.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 01:08 day_.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 04:33 backup00.ocr

4)轉儲OCR備份檔案
[root@rac2 crs]# /oracle/app/crs/bin/ocrdump -backupfile backup00.ocr
[root@rac2 crs]# ls -ltr
total 23800
-rw-r--r-- 1 root root 4812800 Nov  9 21:43 backup02.ocr
-rw-r--r-- 1 root root 4812800 Nov  9 21:43 day.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 01:08 backup01.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 01:08 day_.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 04:33 backup00.ocr
-rw-r--r-- 1 root root  241447 Nov 10 08:15 OCRDUMPFILE

亦可以使用“-xml”選項以XML格式進行輸出
[root@rac2 crs]# /oracle/app/crs/bin/ocrdump -xml -backupfile backup00.ocr xml_backup00
[root@rac2 crs]# ls -ltr
total 24188
-rw-r--r-- 1 root root 4812800 Nov  9 21:43 backup02.ocr
-rw-r--r-- 1 root root 4812800 Nov  9 21:43 day.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 01:08 backup01.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 01:08 day_.ocr
-rw-r--r-- 1 root root 4812800 Nov 10 04:33 backup00.ocr
-rw-r--r-- 1 root root  241447 Nov 10 08:15 OCRDUMPFILE
-rw-r--r-- 1 root root  392832 Nov 10 08:24 xml_backup00

如果未指定輸出的檔名,系統預設的轉儲名字是“OCRDUMPFILE”。

5)分別檢視兩種形式的轉儲檔案內容
[root@rac2 crs]# vi OCRDUMPFILE
11/10/2010 08:15:52
backup00.ocr
/oracle/app/crs/bin/ocrdump.bin -backupfile backup00.ocr

[SYSTEM]
UNDEF :
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}

[SYSTEM.css]
UNDEF :
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}

[SYSTEM.css.interfaces]
UNDEF :
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_CREATE_SUB_KEY, OTHER_PERMISSION : PROCR_READ, USER_NAME : oracle, GROUP_NAME : oinstall}
……省略剩餘輸出……


[root@rac2 crs]# vi xml_backup00


11/10/2010 08:24:49
backup00.ocr
/oracle/app/crs/bin/ocrdump.bin -xml -backupfile backup00.ocr xml_backup00


SYSTEM
UNDEF

PROCR_ALL_ACCESS
PROCR_READ
PROCR_READ
root
root


SYSTEM.css
UNDEF

PROCR_ALL_ACCESS
PROCR_READ
PROCR_READ
root
root


SYSTEM.css.interfaces
UNDEF

PROCR_ALL_ACCESS
PROCR_CREATE_SUB_KEY
PROCR_READ
oracle
oinstall
……省略剩餘輸出……

3.OCR的樹形結構
全面檢視OCR的內容後可以總結出如下的樹形結構。
root
├─SYSTEM
│  ├─css
│  ├─language
│  ├─version
│  ├─ORA_CRS_HOME
│  ├─local_only
│  ├─evm
│  ├─crs
│  └─OCR
├─DATABASE
│  ├─NODEAPPS
│  ├─LOG
│  ├─ASM
│  ├─DATABASES
│  │  ├─SERVICE
│  │  └─INSTANCE
│  └─ONS
└─CRS

簡單對上述三類鍵值的功能做下述簡要描述:
1)SYSTEM鍵包含了與Oracle Clusterware主要程式CSSD、CRSD和EVMD的相關資料;
2)DATABASE鍵包含了在Oracle Clusterware註冊的RAC資料庫相關的資料;
3)OCR鍵記錄了與資源概要檔案相關的資訊,維護其他註冊到Oracle Clusterware的應用程式的可用性。

4.小結
OCR作為Oracle RAC叢集環境中的重要資源,建議對其內容進行深入的理解。

Good luck.

secooler
10.11.10

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-678008/,如需轉載,請註明出處,否則將追究法律責任。

相關文章