Ocrconfig時報PROT-1 Failed to initialize ocrconfig,PROT-16: Internal Error的問題解決

djb1008發表於2010-09-15

一次儲存的操作導致了ORACLE RAC的一個ocr裝置近一個小時的無法訪問,所以ORACLE RAC OCR裝置需要重新配置,與執行的ocr裝置進行同步操作.

在節點2執行ocrconfig時報PROT-1 Failed to initialize ocrconfig錯誤,如下:

[root@scdb_node2 raw]# /oracle/product/10.2.0/crs/bin/ocrconfig -replace ocrmirror /dev/raw/raw2

PROT-1: Failed to initialize ocrconfig

懷疑是節點2crs沒有啟動,檢查crs的狀態:

$crs_stat

CRS-0184: Cannot communicate with the CRS daemon.

crs沒有正確啟動,可以是因為儲存的問題,導致的vote盤異常,導致了這個節點被rac踢出.

[@more@]

重新啟動crs

[root@scdb_node2 init.d]# /etc/init.d/init.crs start

Startup will be queued to init within 30 seconds.

等待一會以後,再次查詢crs的狀態:

[root@scdb_node2 init.d]# ps -ef|grep d.bin

oracle 17215 17214 0 18:00 ? 00:00:00 /oracle/product/10.2.0/crs/bin/evmd.bin

root 17316 8991 1 18:00 ? 00:00:00 /oracle/product/10.2.0/crs/bin/crsd.bin reboot

root 17860 17414 0 18:00 ? 00:00:00 /oracle/product/10.2.0/crs/bin/oprocd.bin run -t 1000 -m 500 -f

oracle 18051 17531 0 18:00 ? 00:00:00 /oracle/product/10.2.0/crs/bin/ocssd.bin

root 18720 10455 0 18:01 pts/1 00:00:00 grep d.bin

[root@scdb_node2 init.d]# su - oracle

[oracle@scdb_node2 ~]$ crs_stat

。。。。。。

NAME=ora.SCDB.SCDB_SRV.SCDB2.srv

TYPE=application

TARGET=ONLINE

STATE=ONLINE on scdb_node2

Crs_stat 顯示crs已經啟動,並且例項也被crs帶起來了

檢查ocr的狀態:

[oracle@scdb_node2 ~]$ ocrcheck

Status of Oracle Cluster Registry is as follows :

Version : 2

Total space (kbytes) : 304972

Used space (kbytes) : 4072

Available space (kbytes) : 300900

ID : 691296028

Device/File Name : /dev/raw/raw2

Device/File needs to be synchronized with the other device

Device/File Name : /dev/raw/raw1

Device/File integrity check succeeded

發現/dev/raw/raw2需要進行同步,先檢查ocr的物理裝置是否存在

#ls -lt /dev/raw

crw-rw---- 1 oracle oinstall 162, 4 Sep 15 18:02 raw4

crw-rw---- 1 root oinstall 162, 1 Sep 15 17:50 raw1

沒有raw2裝置,這說明儲存出問題的時候,這個裝置定義也丟失了

執行vgscan認盤,執行/etc/rc.local重新定義裝置

#vgscan

#/etc/rc.local

#ls -lt /dev/raw

crw-rw---- 1 oracle oinstall 162, 3 Sep 15 18:37 raw3

crw-rw---- 1 oracle oinstall 162, 4 Sep 15 18:37 raw4

crw-rw---- 1 oracle oinstall 162, 5 Sep 15 18:37 raw5

crw-rw---- 1 root oinstall 162, 2 Sep 15 18:04 raw2

crw-rw---- 1 oracle oinstall 162, 6 Sep 15 17:50 raw6

crw-rw---- 1 root oinstall 162, 1 Sep 15 17:50 raw1

再次執行ocrconfig命令,遇到了新的錯誤PROT-16: Internal Error

[root@scdb_node2 raw]# /oracle/product/10.2.0/crs/bin/ocrconfig -replace ocrmirror /dev/raw/raw2

PROT-16: Internal Error

Crs,ocr 裝置都沒有問題了,還是遇到這樣的問題,有點頭疼.檢視$ORACLE_HOME/log//client/ocrconfig_.log日誌檔案,也發現不了什麼問題.於是考慮是不是命令的引數有問題.我去檢查了/etc/oracle/ocr.loc檔案,其內容如下:

[oracle@scdb_node2 ~]$ more /etc/oracle/ocr.loc

#Device/file /dev/raw/raw2 getting replaced by device /dev/raw/raw2

ocrconfig_loc=/dev/raw/raw2

ocrmirrorconfig_loc=/dev/raw/raw1

local_only=false

仔細看這個文件,我發現了問題所在,原來/dev/raw/raw2ocrconfig_loc引數設定的值,不能執行下面的語句:

/oracle/product/10.2.0/crs/bin/ocrconfig -replace ocrmirror /dev/raw/raw2

而是需要把上面的命令修改為:

/oracle/product/10.2.0/crs/bin/ocrconfig -replace ocr /dev/raw/raw2

注意是引數中ocrmirror修改為ocr,執行命令沒有任何報錯,成功了.然後去檢查ocr的狀態:

[oracle@scdb_node2 ~]$ ocrcheck

Status of Oracle Cluster Registry is as follows :

Version : 2

Total space (kbytes) : 304972

Used space (kbytes) : 4072

Available space (kbytes) : 300900

ID : 691296028

Device/File Name : /dev/raw/raw2

Device/File integrity check succeeded

Device/File Name : /dev/raw/raw1

Device/File integrity check succeeded

Cluster registry integrity check succeeded

問題得到了圓滿的解決.

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

相關文章