ocr命令系列
Oracle Clusterware把整個叢集的配置資訊放在共用儲存上,這個儲存就是OCR Disk.在整個叢集中,只有一個節點能對OCR Disk進行讀寫操作,這個節點叫作Master Node,所有節點都會在記憶體中保留一份OCR的拷貝,同時用一個OCR Process從這個記憶體中讀取內容。OCR內容發生改變時,由Master Node的OCR Process負責同步到其他節點的OCR Process。 因為OCR的內容如此重要,Oracle每4個小時對其做一次備份,並且保留最後的3個備份,以及前一天,前一周的最後一個備份。這個備份由Master Node CRSD進程完成,備份的預設位置是$CRS_HOME/crs/cdata/<cluster_name>目錄下。每次備份後,備份檔案名自動更改,以反應備份時間順序,最近一次的備份叫作backup00.ocr。這些備份檔案除了儲存在本地,DBA還應該在其他存放裝置上保留一份,以防止意外的儲存故障。
命令:ocrdump
該命令能以ASCII的方式列印出OCR的內容,但是這個命令不能用作OCR的備份恢複,也就是說產生的檔案只能用作閱讀,而不能用於恢複。
命令格式:ocrdump [-stdout] [filename] [-keyname name] [-xml]
參數說明:
-stdout:把內容列印輸出到螢幕上
Filename:內容輸出到檔案中
-keyname:只列印某個鍵及其子健內容
-xml:以xml格式列印輸出
樣本:把SYSTEM.css鍵的內容以.xml格式列印輸出到螢幕
[oracle@node1 bin]$ ./ocrdump -stdout -keyname SYSTEM.css -xml|more<OCRDUMP><TIMESTAMP>06/14/2013 22:59:03</TIMESTAMP><COMMAND>./ocrdump.bin -stdout -keyname SYSTEM.css -xml </COMMAND><KEY><NAME>SYSTEM.css</NAME><VALUE_TYPE>UNDEF</VALUE_TYPE><VALUE><![CDATA[]]></VALUE><USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION><GROUP_PERMISSION>PROCR_READ</GROUP_PERMISSION><OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION><USER_NAME>root</USER_NAME><GROUP_NAME>root</GROUP_NAME><KEY><NAME>SYSTEM.css.interfaces</NAME><VALUE_TYPE>UNDEF</VALUE_TYPE><VALUE><![CDATA[]]></VALUE><USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION><GROUP_PERMISSION>PROCR_CREATE_SUB_KEY</GROUP_PERMISSION><OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION><USER_NAME>oracle</USER_NAME><GROUP_NAME>oinstall</GROUP_NAME> ……
這個命令在執行過程中,會在$CRS_HOME/log/<node_name>/client目錄下產生記錄檔,檔案名稱ocrdump_<pid>.log,如果命令執行出現問題,可以從這個日誌查看問題原因。
命令:ocrcheck
ocrcheck命令用於檢查OCR內容的一致性,命令執行過程會在$CRS_HOME/log/nodename/client目錄下產生ocrcheck_pid.log記錄檔。 這個命令不需要參數。
[oracle@node1 bin]$ ./ocrcheckStatus of Oracle Cluster Registry is as follows : Version : 2 Total space (kbytes) : 104344 Used space (kbytes) : 3832 Available space (kbytes) : 100512 ID : 447841508 Device/File Name : /dev/raw/raw1 Device/File integrity check succeeded Device/File not configured Cluster registry integrity check succeeded[oracle@node1 bin]$
命令:ocrconfig
該命令用於維護OCR磁碟,安裝clusterware過程中,如果選擇External Redundancy冗餘方式,則只能輸入一個OCR磁碟位置。但是Oracle允許配置兩個OCR磁碟互為鏡像,以防止OCR磁碟的單點故障。OCR磁碟和Votedisk磁碟不一樣,OCR磁碟最多隻能有兩個,一個Primary OCR和一個Mirror OCR。
[oracle@node1 bin]$ ./ocrconfig –helpName: ocrconfig - Configuration tool for Oracle Cluster Registry.Synopsis: ocrconfig [option] option: -export <filename> [-s online] - Export cluster register contents to a file -import <filename> - Import cluster registry contents from a file -upgrade [<user> [<group>]] - Upgrade cluster registry from previous version -downgrade [-version <version string>] - Downgrade cluster registry to the specified version -backuploc <dirname> - Configure periodic backup location -showbackup - Show backup information -restore <filename> - Restore from physical backup -replace ocr|ocrmirror [<filename>] - Add/replace/remove a OCR device/file -overwrite - Overwrite OCR configuration on disk -repair ocr|ocrmirror <filename> - Repair local OCR configuration -help - Print out this help informationNote: A log file will be created in $ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log. Please ensure you have file creation privileges in the above directory before running this tool.[oracle@node1 bin]$
查看自助備份:
[oracle@node1 bin]$ ./ocrconfig -showbackupnode1 2013/05/26 23:03:03 /opt/ora10g/product/10.2.0/crs_1/cdata/crsnode2 2013/03/24 16:19:28 /opt/ora10g/product/10.2.0/crs_1/cdata/crsnode1 2013/03/24 15:05:35 /opt/ora10g/product/10.2.0/crs_1/cdata/crsnode1 2013/05/26 23:03:03 /opt/ora10g/product/10.2.0/crs_1/cdata/crsnode1 2013/05/26 23:03:03 /opt/ora10g/product/10.2.0/crs_1/cdata/crs[oracle@node1 bin]$ [oracle@node1 bin]$ ls -l /opt/ora10g/product/10.2.0/crs_1/cdata/crstotal 15304-rw-r--r-- 1 root root 4493312 May 26 23:03 backup00.ocr-rw-r--r-- 1 root root 2150400 Mar 24 15:05 backup01.ocr-rw-r--r-- 1 root root 4493312 May 26 23:03 day.ocr-rw-r--r-- 1 root root 4493312 May 26 23:03 week.ocr[oracle@node1 bin]$
在預設情況下,OCR自動備份在$CRS_HOME/CRS/CDATA/cluster_name目錄下,可以通過ocrconfig -backuploc <directory_name>命令修改到新目錄
使用匯出,匯入進行備份和恢複:
Oracle推薦在對叢集做調整時,比如增加,刪除節點之前,應該對OCR做一個備份,可以使用export備份到指定檔案,如果做了replace或者restore等操作,Oracle建議使用cluvfy comp ocr -n all命令來做一次全面的檢查。該命令在clusterware的安裝軟體裡。以下操作具有一定破壞性,測試需謹慎!
1.首先關閉所有節點的CRS [root@rac1 bin]#./crsctl stop crs 2.用root使用者匯出OCR內容[root@rac1 bin]# ./ocrconfig -export /u01/ocr.exp3.重啟CRS [root@rac1 bin]# ./crsctl start crs4.檢查CRS狀態 [root@rac1 bin]# ./crsctl check crs CSS appears healthy CRS appears healthy EVM appears healthy5.破壞OCR內容 [root@rac1 bin]# dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=102400 102400+0 records in 102400+0 records out 6.檢查OCR一致性 [root@rac1 bin]# ./ocrcheck PROT-601: Failed to initialize ocrcheck7.使用cluvfy工具檢查一致性 [root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all Verifying OCR integrity Unable to retrieve nodelist from Oracle clusterware. Verification cannot proceed. 8.使用Import恢複OCR內容 [root@rac1 bin]# ./ocrconfig -import /u01/ocr.exp 9.再次檢查OCR [root@rac1 bin]# ./ocrcheck 10.使用cluvfy工具檢查 [root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all
移動ocr檔案位置:
執行個體示範將OCR從/dev/raw/raw1移動到/dev/raw/raw3上。 1.查看是否有OCR備份 [root@rac1 bin]#./ocrconfig -showbackup 如果沒有備份,可以立即執行一次匯出作為備份: [root@rac1 bin]#./ocrconfig -export /u01/ocrbackup -s online 2.查看當前OCR配置 [root@rac1 bin]# ./ocrcheck 3.添加一個Mirror OCR [root@rac1 bin]#./ocrconfig -replace ocrmirror /dev/raw/raw4 4.確認添加成功 [root@rac1 bin]#./ocrcheck5.改變primary OCR位置 [root@rac1 bin]#./ocrconfig -replace ocr /dev/raw/raw3 確認修改成功: [root@rac1 bin]#./ocrcheck6.使用ocrconfig命令修改後,所有RAC節點上的/etc/oracle/ocr.loc檔案內容也會自動同步了,如果沒有自動同步,可以手工的改成以下內容。 [root@rac1 bin]#more /etc/oracle/ocr.loc ocrconfig_loc=/dev/raw/raw1 Ocrmirrorconfig_loc=/dev/raw/raw3 local_only=FALSE
--整理自《大話 oracle rac》