2008年(5)
分类: Oracle
2008-10-25 01:25:20
环境:P550*2,DS4500,AIX 5306,Oracle 10G R2 RAC,ASM
背景:一台P550的HBA卡损坏,更换HBA卡后运行cfgmgr,出现鬼盘,阵列上的盘认到2倍,不能满足多路径负载均衡及冗余功能,于是使用crs_stop -2停止数据库,停止crs服务(crsctl stop crs),删除原有hdisk的设备文件,并删除HBA卡的相关设备文件dac0/1,fcs0/1,重新运行cfgmgr,不再出现鬼盘。但在启动crs服务时出错,说是找不到OCR磁盘。1、查找OCR配置文件
# cat /etc/oracle/ocr.loc
ocrconfig_loc=/dev/ocr1
local_only=FALSE
2、查找配置文件中指定的设备文件
# ls -al /dev/ocr*
ls: 0653-341 The file /dev/ocr* does not exist.
一般情况下,crs使用的OCR磁盘应为/dev/rhdisk1之类,为何成了/dev/ocr1了呢?经询问Oracle安装工程师得知,因最初安装时2台主机的系统中识别到的磁盘设备文件小号不一致导致CRS无法正常安装,所以采用了自建设备文件来统一的办法,所以2台主机的OCR设备文件成了/dev/ocr1了。
那看来是因为删除原LUN的设备文件及新生成的鬼盘设备文件时,也同时自动删除了自建的设备文件,该文件丢失导致了CRS无法启动。
3、从另一台主机查询/dev/ocr1的信息,重新生成该设备文件/dev/ocr1,如下:
mknod /dev/ocr1 c 24 5
;24为主号,5为次号,需要保证2台主机主、次号一致
4、修改属主、权限
chown oracle:dba /dev/ocr1
chmod 660 /dev/ocr1
5、修改其它使用过mknod自建的设备文件并修改属主、权限;
重新启动CRS(crsctl start crs),然后启动数据库(crs_start -2),Oracle RAC恢复正常。