利用ocrconfig工具迁移OCR磁盘时出现PORT-16错误
Dec202012
最近有个客户要换存储,在测试迁移OCR时,出现PROT-16: Internal Error错误。
[root@node2 ~]# ocrconfig -replace ocr /dev/raw/raw7 PROT-16: Internal Error
测试环境:OEL6.0 X86_64 ORACLE 10.2.0.5.0 RAC+ASM
当前OCR存放磁盘信息如下:
[root@node2 client]# ocrcheck Status of Oracle Cluster Registry is as follows : Version : 2 Total space (kbytes) : 195804 Used space (kbytes) : 4612 Available space (kbytes) : 191192 ID : 1398039632 Device/File Name : /dev/raw/raw1 Device/File integrity check succeeded Device/File not configured Cluster registry integrity check succeeded
在查看老杨BLOG时(http://yangtingkun.net/?p=116),发现ORACLE在线迁移OCR有很多限制,首先是OCR磁盘大小的限制,Oracle推荐是128M、256M、512M等等,如果原本OCR设备的大小小于128M,则OCR新的设备取128M,如果原本设备大小在128M到256M之间,则取256M大小。其次是如果只有1个OCR设备,则REPLACE命令无效,只能是先增加OCRMIRROR,然后再迁移OCR,如以下操作:
增加OCRMIRRIR到新存储,其实就是冗余OCR数据,OCRMIRRIR和OCR是镜像关系。该方法不需要关闭数据库。
[root@node2 ~]# ocrconfig -replace ocrmirror /dev/raw/raw8
迁移OCR到新存储。
[root@node2 client]# ocrconfig -replace ocr /dev/raw/raw7
校验OCR是否迁移成功。
Status of Oracle Cluster Registry is as follows : Version : 2 Total space (kbytes) : 195804 Used space (kbytes) : 4612 Available space (kbytes) : 191192 ID : 1398039632 Device/File Name : /dev/raw/raw7 Device/File integrity check succeeded Device/File Name : /dev/raw/raw8 Device/File integrity check succeeded Cluster registry integrity check succeeded
此处可以看到OCR迁移成功。有一点值得一提的是,新存储大小是256M,但是在迁移后校验OCR信息时发现Total space和Available space都还和原来OCR大小一直,Total space还是195804K,并不是262144K,这应该也是ORACLE对OCR的保护机制吧。