文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>RAC重建OCR/Voting disk

RAC重建OCR/Voting disk

时间:2010-07-06  来源:vcdog

RAC重建OCR/Voting disk
--------------------------------------------------------------------------------
我的测试环境: 母系统:winXP T400
虚拟软件:GXS vmware3.2.1
guest系统:as5u1
oracle db:oracle10.2.1 前两天由于意外原因,同事从新插拔下电源,使我的rac测试环境意外断电,致使表决(votingdisk)虚拟磁盘
故障,致使系统都起不来。怎么办呢?我当时想法是,不到最后一刻,坚决不重装。恢复的过程也是熟悉的过程。
由于是votingdisk磁盘故障,系统无法启动,报votingdisk磁盘无法识别,为了让系统能启动,我把votingdisk磁盘
在vmware里重新添加了一遍,才让系统可以重新启动。系统起来之后,节点rac1又遇到gnome的bug,还好不影响rac的
正常工作。
因为我的votedisk损坏,而且有没有备份,所以只能重建votedisk votedisk损坏只能重建,重建votedisk有两种方法
1.如果有votedisk备份的话,就用备份恢复

 eg:
 备份votedisk:dd if=/dev/raw/raw2 of=/tmp/votedisk.bak
 恢复votedisk:dd if=/tmp/votedisk.bak of=/dev/raw/raw2

2.没有votedisk备份的话,那就只能重新安装clusterware了(votedisk中信息是在安装clusterware或添加删除节点
  时把节点的信息添加进去的,并有ocssd进程维护)
根据我描述的故障现象,现在只能重新安装clusterware来重新初始化votedisk,已达到恢复的目的 这也是最快的方法 步骤:
1.停止所有节点的clusterware stack

[root@rac2 ~]# su - oracle
[oracle@rac2 ~]$ su
Password:
[root@rac2 oracle]# crsctl stop crs
2.备份每个节点的clusterware的目录 [root@rac1 oracle]# mv /u01/crs /u01/crsbak 3.为了避免新配置和旧的配置信息冲突,最好清除就得clusterware配置信息 清理旧配置信息(在各节点运行)
3.1 删除crs自启动信息

修改 /etc/inittab, 删除以下三行.

h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 </dev/null
h2:2:respawn:/etc/init.cssd fatal >/dev/null 2>&1 </dev/null
h3:2:respawn:/etc/init.crsd run >/dev/null 2>&1 </dev/null
linux:
rm /etc/oracle/*
rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crs
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
rm -f /etc/rc2.d/K96init.crs
rm -f /etc/rc2.d/S96init.crs
rm -f /etc/rc3.d/K96init.crs
rm -f /etc/rc3.d/S96init.crs
rm -f /etc/rc5.d/K96init.crs
rm -f /etc/rc5.d/S96init.crs
rm -Rf /etc/oracle/scls_scr
rm -f /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab
ps -ef|grep init.d /etc/init.d/init.crsd
/etc/init.d/init.evmd
/etc/init.d/init.cssd
3.2 清理旧配置信息 rm -rf /etc/oracle/* (删除ocr.loc)
rm -rf /var/tmp/.oracle或/tmp/.oracle
3.3使用dd清除vote disk和ocr(裸设备)
dd if=/dev/zero f=/dev/votedisk_device bs=8192 count=2560
dd if=/dev/zero f=/dev/ocr_device bs=8192 count=12800
参考: 清除10g RAC CRS的方法
http://6month.itpub.net/post/37672/470422

4.分别在每个节点上执行$CRS_HOME/install/rootdelete.sh
5.在任何一个节点上执行脚本$CRS_HOME/install/rootdeinstall.sh,只需要在一个节点上执行即可 以上就是删除crs的配置,下面就是重新安装crs ,执行如下的命令检查,如果没有返回值,那就可以继续安装了  ps -e | grep -i ‘ocs[s]d’
 ps -e | grep -i ‘cr[s]d.bin’
 ps -e | grep -i ‘ev[m]d.bin’

6.和在步骤5同一个节点上执行脚本$CRS_HOME/root.sh
7.在其他节点执行$CRS_HOME/root.sh,然后注意下最后一个节点的输出,最后还要运行"./VIPCA"
 
8.用netca重新配置监听器,确认注册到ocr中
这个时候用crs_stat -t -v 可以看到listener,ONS,GSD,VIP注册到ocr中,还需要把asm,数据库也注册到ocr中 9.向ocr中注册ASM srvctl add asm -n rac1 -i +ASM1 -o $ORACLE_HOME
srvctl add asm -n rac2 -i +ASM2 -o $ORACLE_HOME
10.启动ASM srvctl start asm -n rac1
srvctl start asm -n rac2
一般在启动最后一个asm实例的时候会报错,一般是因为rac无法确认用哪个网络作为 private interconnect
所以可以通过向两个ASM实例的pfile中添加下面两个参数
在文件里添加两个参数/u01/app/oracle/product/10.2.0/db_1/dbs/init+ASM2.ora
+ASM1.cluster_interconnects='192.168.0.31'
+ASM2.cluster_interconnects='192.168.0.22'

ip一定要写对,否则会出现问题,然后在重启asm实例,问题即可解决
11. 手工注册database对象(数据库的名字要和db_name大小写一样) srvctl add database -d RAC -o $ORACLE_HOME 12. 手工注册两个实例对象(实例名要和isntance_name大小写一样) srvctl add instance -d RAC -i rac1 -n rac1
srvctl add instance -d RAC -i rac2 -n rac2
13.修改实例和asm实例的对应关系 srvctl modify instance -d RAC -i RAC1 -s +ASM1
srvctl modify instance -d RAC -i RAC2 -s +ASM2
14.启动数据库(在这过程一般也会报错,所以要向asm实例那样手工指定private interconnect) sql> alter system set cluster_interconnects='192.168.0.31' scope=spfile sid='*'
sql> alter system set cluster_interconnects='192.168.0.22' scope=spfile sid='*'
然后启动数据库
srvctl start database -d RAC
15.检查ons是否正常 [root@rac2 oracle]# ps -ef |grep ons
root      4008 10066  0 08:39 pts/0    00:00:00 grep ons
root      5660     1  0 06:42 ?        00:00:00 sendmail: accepting connections
oracle   16107     1  0 07:21 ?        00:00:00 /u01/crs/oracle/product/10.2.0/crs/opmn/bin/ons -d
oracle   16108 16107  0 07:21 ?        00:00:00 /u01/crs/oracle/product/10.2.0/crs/opmn/bin/ons -d

[root@rac2 oracle]# onsctl ping
Number of onsconfiguration retrieved, numcfg = 0
ons is not running ...
[root@rac2 oracle]# onsctl start
Number of onsconfiguration retrieved, numcfg = 0
Number of onsconfiguration retrieved, numcfg = 0
onsctl: ons started
[root@rac2 oracle]# onsctl ping
Number of onsconfiguration retrieved, numcfg = 0
ons is running ...
[root@rac2 oracle]#
如果ons无法启动,可以用如下命令,也可以直接编辑文件$CRS_HOME/opmn/conf/ons.config racgons  add_config hostname1:port hostname2:port
racgons  remove_config hostname1:port hostname2:port

16.检查网络是否正常用命令oifcfg
eg:添加接口配置
oifcfg setif -global eth0/192.168.2.0:public
oifcfg setif -global eth1/192.168.0.0:cluster_interconnect
17.用下面的两个命令核查配置的正确性 1. [oracle@rac1 ~]$ /tmp/10201_clusterware_linux32/clusterware/cluvfy/runcluvfy.sh  stage -post crsinst -n rac1,rac2 2. crs_stat -t -v 到此votingdisk就已经重新配置成功了,但是在这过程中也遇到很不少问题,下面就是对问题
总结,其中第三个问题走了很多弯路,用了小半天的时间,其他的问题很快就都解决了。
1. 由于votingdisk磁盘故障,所以在vmware里重新添加删除磁盘
2. crs的启动问题(节点时间同步)
3. asm2实例无法启动的问题(把点写成逗号)
4. 无法启动数据库的问题
5. onsctl启动的问题
6. 更改/dev/raw属主的问题
7. oifcfg注册网络的问题
具体的问题及解决方法,请参考另一篇文章:http://blog.csdn.net/wyzxg/archive/2010/05/09/5572418.aspx 参考文档: 重建votedisk/ocr
http://www.laoxiong.net/10g_rebuild_crs_rac.html
http://www.dbasoul.com/2010/700.html
 ------end------
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wyzxg/archive/2010/05/10/5576328.aspx
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载