在Linux AS 5.4上安装Oracle RAC 10.2.0.1,使用多路径软件映射出来的虚拟磁盘分区保存OCR和VOTE DISK信息。执行root.sh时报错"Failed to upgrade Oracle Cluster Registry configuration"。
报错具体信息如下:
[root@rac11 ~]# /u01/app/oracle/product/10.2.0/crshome_1/root.sh
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
Checking to see if Oracle CRS stack is already configured
Setting the permissions on OCR backup directory
Setting up NS directories
Failed to upgrade Oracle Cluster Registry configuration
分析ocrconfig.log日志,错误信息如下:
[root@rac11 ~]# more /u01/app/oracle/product/10.2.0/crshome_1/log/rac11/client/ocrconfig_11282.log
Oracle Database 10g CRS Release 10.2.0.1.0 Production Copyright 1996, 2005 Oracle. All rights reserved.
2012-11-16 14:36:56.567: [ OCRCONF][521395072]ocrconfig starts...
2012-11-16 14:36:56.567: [ OCRCONF][521395072]Upgrading OCR data
2012-11-16 14:36:56.572: [ OCRCONF][521395072]OCR already in current version.
2012-11-16 14:36:56.579: [ OCRCONF][521395072]Failed to call clsssinit (21)
2012-11-16 14:36:56.579: [ OCRCONF][521395072]Failed to make a backup copy of OCR
2012-11-16 14:36:56.579: [ OCRCONF][521395072]Exiting [status=failed]...
[root@rac11 ~]#
使用dd清理raw1,raw2裸设备
dd if=/dev/zero of=/dev/raw/raw1 bs=8192K count=10
dd if=/dev/zero of=/dev/raw/raw2 bs=8192K count=10
清理结果正常,不是磁盘不能读或者保存有旧的配置信息。
于是查找oracle官网,说这是一个bug.
在RedHat 5.4 RAC multipath 配置raw,运行root.sh 时报错Failed to upgrade Oracle Cluster Registry configuration 。
使用clsfmt.bin检查一下。
[root@rac11 ~]# /u01/app/oracle/product/10.2.0/crshome_1/bin/clsfmt.bin ocr /dev/raw/raw1
clsfmt: Received unexpected error 4 from skgfifi
skgfifi: Additional information: -2
Additional information: -2147483648
oracle 发布的补丁包p4679769_10201_Linux-x86-64.zip。补丁包中的clsfmt.bin文件替换到系统bin目录的同名称文件即可。