ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 以FORCE选项VOTEDISK导致OCR配置异常

以FORCE选项VOTEDISK导致OCR配置异常

原创 Linux操作系统 作者:yangtingkun 时间:2012-02-11 22:59:26 0 删除 编辑

在一次Oracle 10.2.0.1 RAC环境迁移到新存储的过程中,添加VOTEDISK后,OCR配置出现了异常。

 

 

由于RAC环境整体迁移到新存储上,因此需要将OCRVOTEDISK从原有存储的裸设备上迁移到新存储的裸设备上。

在迁移OCR的时候已经碰到了不少错误,所幸都很快得以解决。

运行ocrconfig replace ocr出现PROT-16错误:http://yangtingkun.net/?p=116

运行ocrconfig replace ocrmirror出现PROT-22错误:http://yangtingkun.net/?p=146

没想到随后的votedisk迁移,虽然并未报错,但是却引发了更大的麻烦,步骤是先增加一个新存储上的votedisk,然后删除所有旧存储上的votedisk,最后添加其他四个新存储上的votedisk,命令如下:

# ./crsctl add css votedisk /dev/vote1 –force

使用上面的命令添加前三个votedisk没有问题,添加第四个和第五个时,可能是由于AIX上的10.2.0.1不支持,且使用了force选项,导致命令虽然成功执行,但是实际上ocr中记录的信息是混乱的。

通过命令检查votedisk的配置发现:

# ./crsctl query css votedisk
 0.     0    /dev/vote4
 1.     0    /dev/vote1
 2.     0    /dev/vote4
 3.     0    /dev/vote4
 4.     0    /dev/vote5

配置中出现了重复的VOTEDISK记录,随后通过一系列的deleteadd命令使得查询的结果变得正常:

crsctl delete css votedisk /dev/vote4 –force
# ./crsctl delete css votedisk /dev/vote4 -force
# ./crsctl delete css votedisk /dev/vote4 -force
# ./crsctl delete css votedisk /dev/vote4 -force
# ./crsctl delete css votedisk /dev/vote5 -force
# ./crsctl add css votedisk /dev/vote2 -force
# ./crsctl add css votedisk /dev/vote3 –force
# ./crsctl query css votedisk
 0.     0    /dev/vote2
 1.     0    /dev/vote1
 2.     0    /dev/vote3

可惜问题并非如此简单,虽然随后的数据库相关操作都没有问题,但是在迁移完成后尝试重启时,发现votedisk的配置仍然存在问题,导致cluster环境无法启动。

检查时发现OCR中记录的信息已经和刚才配置好的信息不符,没有办法值得再次利用deleteadd的方法解决,CLUSTER虽然成功启动,但是这个问题的本质是ocr中的配置存在错乱,仅仅利用add votediskdelete votedisk无法彻底解决这个问题。果然不久以后查询VOTEDISK信息再次发现了问题。

为了解决OCR中错误的配置问题,专门申请了停机时间,并设计了OCR重建的方案,而最坏的打算是将整个RAC环境重建。

当然正常情况下,只需要重建OCRVOT既可,大概的步骤如下:

备份ocr设备和votedisk设备:

# ./ocrconfig -export /home/oracle/rmanocr_date.exp
# dd if=/dev/vote1 f=/rmanhome/oracle/vote_disk_date.bak

删除ocr配置信息

# $ORA_CRS_HOME/bin/crsctl stop crs
# $ORA_CRS_HOME/install/rootdelete.sh
# $ORA_CRS_HOME/install/rootdeinstall.sh

crsctl stop crsrootdelete.sh需要root在两个节点上分别运行,rootdeinstall.shroot在节点1上运行。

确认cluster状态,这三个命令应该不返回结果

$ ps -ef | grep cssd
$ ps -ef | grep evmd
$ ps -ef | grep crsd

重建ocrvot

# $ORA_CRS_HOME/root.sh

在节点1上使用root执行root.sh,等到节点1上的命令正常结束后,节点2上用root运行root.sh

root.sh的脚本在运行前需要检查,确保其中的配置正常。

确认votedisk正常

# ./crsctl query css votedisk

ocr中添加rac的其他配置

$ /bin/racgons add_config hostname1:port hostname2:port

其中端口信息可以从$ORA_CRS_HOME/log/hostname/racg/ora.instance_name.ons文件中获取。

$/u01/crs/bin/oifcfg setif -global eth1/private_ip:cluster_interconnect eth0/public_ip:public

利用netca添加监听利用srvctl添加asmdbinstance信息

$ srvctl add database -d dbname -o $ORACLE_HOME -p +DATA/dbname/spfiletest.ora -n global_name
$ srvctl add instance -d dbname -i instance1 -n hostname
$ srvctl add instance -d dbname -i instance2 -n hostname

检查配置健康

$ cluvfy stage -post crsinst -n node1,node2

启动cluster和数据库

# $ORA_CRS_HOME/bin/crsctl start crs

而在实际迁移过程中,并没有执行这么复杂的操作。在备份完毕后,检查发现ocrconfig导出的备份似乎并没有包含混乱的votedisk配置信息,于是尝试利用ocrconfig –import功能导入刚刚导出的备份:

# ./ocrconfig -export /home/oracle/rmanocr_date.exp

结果发现ocrvotedisk的配置恢复了正常,而且此后也不会再发生变化。

看来Oracle在使用逻辑备份导出导入ocr配置的时候,可以自动过滤或清理掉错误的配置。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-716079/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10365790