迁移OCR时failed 8 to initailize votedisk错误解决
最近在给客户迁移存储时,迁移voting disk的时候,遇到Failure in CSS initialization opening OCR.failed 8 to initailize votedisk错误。
/oracle10g/crs/bin/crsctl add css votedisk /dev/vg14/rvoting1 -force Failure in CSS initialization opening OCR. failed 8 to initailize votedisk /dev/vg14/rvoting1.
案例环境:ORACLE 10.2.0.5 两节点RAC,HPUX
案例描述:客户的数据文件存放在裸设备上,该裸设备所在的存储多路径模块出现问题,只有一条链路可以,客户是7*24系统,担心仅剩的一条链路故障影响业务连续性,决定更换一套新采购的存储。该客户没有多余的服务器,也没有测试环境,只能在生产环境操作。我们在第二个节点上创建一个单实例的DG,应用关闭后,检查数据库状态正常,可以切换,为了回退方便,使用SWITCHOVER切换数据库,并逻辑备份OCR,同时使用dd命令物理备份OCR和VOTINGDISK,之后,存储负责人将旧存储下线,将新存储配置双机,存储工程师配置完成后,检查裸设备及其他新存储挂载点的权限,一切正常,开始逻辑恢复OCR。
/oracle10g/crs/bin/ocrconfig -import /archive_log/bak_ocr_voting/ocr_exp_bak.ocr
其实这个过程已经出了问题,但是没有任何报错。在OCR导入后,查询VOTINGDISK信息,查询不到。
[/]crsctl query css votedisk located 0 votedisk(s).
这就很奇怪了,为何VOTINGDISK的信息没有注册到OCR呢?强制注册VOTINGDISK信息就报上述错误。
/oracle10g/crs/bin/crsctl add css votedisk /dev/vg14/rvoting1 -force Failure in CSS initialization opening OCR. failed 8 to initailize votedisk /dev/vg14/rvoting1.
在操作系统上查看,新存储和旧存储都存在,权限什么都没问题,没有头绪,只好对比OCR文件头了,使用DD命令搞个新存储上的OCR文件头和旧存储上的OCR文件头对比下看看有什么不对劲的地方。
[/archive_log/bak_ocr_voting]dd if=/dev/vg14/rocr1 of=/archive_log/ocr14 bs=4096 count=100 100+0 records in 100+0 records out [/archive_log/bak_ocr_voting]dd if=/dev/vg13/rocr1 of=/archive_log/ocr13 bs=4096 count=100 /dev/vg13/rocr1: No such device or address dd: cannot open /dev/vg13/rocr1
找到原因了,原来是存储工程师没有把旧存储挂载上,但是裸设备的链接还是可以看到的,所以ls命令还是可以看到旧存储的信息,由于旧存储并没有真正挂载,这样在逻辑导入OCR的时候,OCR访问不了VOTINGDISK的资源,当然也就无法将VOTINGDISK的信息注册到OCR了。存储工程师将旧存储挂载上之后,再次导入OCR后,可以成功查询到VOTINGDISK信息。
[/archive_log/bak_ocr_voting]/oracle10g/crs/bin/ocrconfig -import /archive_log/bak_ocr_voting/ocr_exp_bak.ocr [/archive_log/bak_ocr_voting]crsctl query css votedisk 0. 0 /dev/vg13/rvoting1 1. 0 /dev/vg13/rvoting2 2. 0 /dev/vg13/rvoting3
这时就可以将VOTINGDISK迁移到新存储上了。