oracle的rac已经比较普及了,特别是进入oracle10g后,已经开始抛弃第三方的高可用工具,进行了自身的集成。但使用过程中,会经常遇到一些麻烦,下面我们模拟表决盘、ocr损坏后的一些恢复处理办法:
1、模拟表决盘及ocr损坏的情况
--如果存在上述情况,并且没有备份
修改rootconfig文件,这个是集群的配置文件,包括我们在安装时填写的一些内容,这个文件位于/u01/app/oracle/product/crs/install
首先停掉,crs
[root@dbrac1 ~]# cd /u01/oracle/product/10.2.0/crs/bin
[root@dbrac1 bin]# ./crsctl stop crs
2、清空表决盘、ocr盘
表决盘:根据当时分配的大小定
[root@rac1 bin]# dd if=/dev/zero of=/dev/raw/raw3 bs=1M count=1024
[root@rac1 bin]# dd if=/dev/zero of=/dev/raw/raw4 bs=1M count=1024
[root@rac1 bin]# dd if=/dev/zero of=/dev/raw/raw5 bs=1M count=1024
ocr裸盘
[root@rac1 bin]# dd if=/dev/zero of=/dev/raw/raw1 bs=1M count=1024
[root@rac1 bin]# dd if=/dev/zero of=/dev/raw/raw2 bs=1M count=1024
3、修改rootconfig
[root@dbrac1 ~]# cd /u01/oracle/product/10.2.0/crs/install
[root@dbrac1 install]# ls -lrt
total 136
-rwxr-xr-x 1 oracle oinstall 0 Feb 23 2005 install.incl
-rwxr-xr-x 1 oracle oinstall 38 Apr 19 2005 install.excl
-rwxr-xr-x 1 oracle oinstall 1089 Jun 7 2005 cmdllroot.sh
-rw-rw---- 1 oracle oinstall 2800 Jun 7 2005 templocal
-r-xr-xr-x 1 oracle oinstall 4106 Jun 9 2005 rootaddnode.sbs
-rw-rw---- 1 oracle oinstall 9641 Oct 12 15:27 rootlocaladd
-r-xr-xr-x 1 oracle oinstall 16877 Oct 12 15:27 rootupgrade
-r-xr-xr-x 1 oracle oinstall 3596 Oct 12 15:27 rootinstall
-r-xr-xr-x 1 oracle oinstall 12113 Oct 12 15:27 rootdelete.sh
-r-xr-xr-x 1 oracle oinstall 3929 Oct 12 15:27 rootdeletenode.sh
-r-xr-xr-x 1 oracle oinstall 8170 Oct 12 15:27 rootdeinstall.sh
-r-xr-xr-x 1 oracle oinstall 32002 Oct 12 15:27 rootconfig
-rwxr-xr-x 1 oracle oinstall 4581 Oct 12 15:27 preupdate.sh
-rw-rw---- 1 oracle oinstall 506 Oct 12 15:27 paramfile.crs
-rw-rw---- 1 oracle oinstall 3918 Oct 12 15:27 make.log
-rw-rw---- 1 oracle oinstall 32 Oct 12 15:27 cluster.ini
-rw-rw---- 1 oracle oinstall 199 Oct 12 15:27 envVars.properties
-rw-rw---- 1 oracle oinstall 0 Oct 12 15:29 readme.txt
如果我们的节点内容在这里进行了修改,那么我们也要进行相应的修改,可以打开看一下,比如说node的信息、ip等是否与当前不一致,如果不一致,就要进行修改!
[root@dbrac1 install]# vi rootconfig
根据显示的内容进行修改
这个步骤,要在两个节点进行,修改成完全一样!
4、其它准备工作
如果我们修改hostname,那么相应的在机器及配置文件名方面都要修改好
[oracle@dbrac1 bin]$ cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dbrac1
进行调整
同时,在/etc/hosts进行调整
确保调整的与rootconfig中的配置是一样的,两个节点是一样的
说明,这里要跟rootconfig配置是相同的,这一步,在一个节点做就行了
5、删除配置信息
这个配置信息,主要是指ocr盘的文件配置
[oracle@dbrac1 bin]$ cd /etc/oracle
[oracle@dbrac1 oracle]$ ls -lrt
total 8
drwxr-xr-x 3 root root 4096 Oct 12 15:31 scls_scr
-rw-r--r-- 1 root oinstall 79 Dec 25 15:46 ocr.loc
主要删除ocr.loc,用root用户
[root@dbrac1 oracle]# rm ocr.loc
两个节点都要删除
这时可以根据需要验证一下双方的信任
[oracle@dbrac1 oracle]$ ssh dbrac1 date
[oracle@dbrac1 oracle]$ ssh dbrac2 date
[oracle@dbrac1 oracle]$ ssh priv1 date
[oracle@dbrac1 oracle]$ ssh priv1 date
6、开始重新配置表决盘及ocr
[root@dbrac1 install]# export DISPLAY=192.168.104.212:0.0
打开xmanager
[root@dbrac1 install]# ./rootconfig
根据图形界面提示进行
运行完成后,要在第二个节点进行同样的操作
注意,在第二个节点运行时,会报错,导致crs无法重启,所以这里需要我们配置一下:
报错如下:
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
[root@dbrac1 bin]# ./oifcfg getif
[root@dbrac1 bin]# ./oifcfg iflist
eth1 192.168.104.0
virbr0 192.168.104.0
eth0 192.168.104.0
[root@dbrac1 bin]# ./oifcfg setif -global eth0/192.168.104.0:public
[root@dbrac1 bin]# ./oifcfg setif -global eth1/10.10.1.0:cluster_interconnect
[root@dbrac1 bin]# ./oifcfg getif
eth0 192.168.104.0 global public
eth1 10.10.1.0 global cluster_interconnect
[root@dbrac1 bin]#
然后再以root用户,重新运行vipca,用oracle用户运行,会报错
/*[root@dbrac1 oracle]# su - oracle
[oracle@dbrac1 ~]$ cd /u01/oracle/product/10.2.0/crs/bin
[oracle@dbrac1 ~]$ export DISPLAY=192.168.104.212:0.0
[oracle@dbrac1 bin]$ ./vipca */
[root@dbrac2 bin]# export DISPLAY=192.168.104.212:0.0
[root@dbrac2 bin]# ./vipca
输入 virtip
virt1 192.168.104.152
virt2 192.168.104.154
运行完成后,即可以了
[root@dbrac2 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.dbrac2.gsd application ONLINE ONLINE dbrac2
ora.dbrac2.ons application ONLINE ONLINE dbrac2
ora.dbrac2.vip application ONLINE ONLINE dbrac2
ora.dbrac3.gsd application ONLINE ONLINE dbrac3
ora.dbrac3.ons application ONLINE ONLINE dbrac3
ora.dbrac3.vip application ONLINE ONLINE dbrac3
可以看到相应的进程已经出来了。
7、注册相应的服务
[oracle@dbrac1 bin]$ ./srvctl add database -d dbrac -o $ORACLE_HOME
[oracle@dbrac1 bin]$ ./srvctl add asm -n dbrac1 -i +ASM1 -o /u01/oracle/product/10.2.0/db_1
[oracle@dbrac1 bin]$ ./srvctl add instance -d dbrac -n dbrac1 -i dbrac1
在使用srvctl时,会提示一个jdk的东西无法打开,发现是由bug引起的!10.2.0.4后没有此问题
操作如下:
vi srvctl
把以下行注释掉,加上#
#LD_ASSUME_KERNEL=2.4.19
#export LD_ASSUME_KERNEL
同理,在第二个节点也进行相应的注册,在同一个节点执行也可以
8、配置监听
[oracle@dbrac1 bin]$ netca
注意,这里是$ORACLE_HOME下面进行配置,配置前把listener复制一份!这样配置后,listener就注册到crs里面去了!启动服务!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29371470/viewspace-1065078/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29371470/viewspace-1065078/