【11grac】记录一次失败的ocr损坏模拟

版权声明:所有文章禁止转载但是均可在生产中使用提高效率 https://blog.csdn.net/viviliving/article/details/90018517

ocr损坏后,会发现diskgroup,asmlib中仅仅找不到ocr asm disk,

其他的数据盘data,flashback,arch都是ok的,最好不要做任何处理

仅仅重建恢复ocr diskgroup即可

不要动数据盘data,flashback,arch

ocr重建恢复好后,asmca挂上data,flashback,arch到相应的diskgroup即可

ocr如果无法恢复,大不了重新创建即可

ASMCMD看已经看不到表决盘

[grid@rac1 ~]$ asmcmd         
ASMCMD> ls
BAK/
DB/

登录asm实例()

[grid@rac1 ~]$ sqlplus / as sysasm

登录asm实例()

[grid@rac1 ~]$ sqlplus / as sysasm

查看磁盘组状态(data容量已变0)

SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME                           STATE         TOTAL_MB    FREE_MB
------------ ------------------------------ ----------- ---------- ----------
           1 BAK                            MOUNTED          10239      10144
           2 DATA                           MOUNTED              0          0
           3 DB                             MOUNTED          20479      16110

1.强制关闭crs(by all)

[root@rac1 ~]# /u01/app/11.2.0/grid/bin/crsctl stop crs -f
[root@rac2 ~]# /u01/app/11.2.0/grid/bin/crsctl stop crs -f

2.exclusive模式启动crs 以-excl -nocrs 方式启动集群,这将启动ASM实例 但不启动CRS 启动到独占模式且不启动ora.crsd(节点1)

[root@rac1 ~]# /u01/app/11.2.0/grid/bin/crsctl start crs -excl -nocrs

3.使用root用户清空所有节点cluster配置信息

恢复过程其实就是使用root.sh重建ocr的过程,重建之后可能需要重新注册相关资源如listener or database 实例等!在清空之前呢我们需要先使用rootcrs.pl脚本脚本清空所有节点cluster配置信息。

(11G中存在rootcrs.pl脚本,该脚本默认存在于$GRID_HOME/crs/install)。

节点1执行:

/u01/app/11.2.0/grid/crs/install/rootcrs.pl -deconfig -force

节点2执行:因为我的RAC是双节点的,那么在清除最后一个使用lastnode参数:

/u01/app/11.2.0/grid/crs/install/rootcrs.pl -deconfig -force -lastnode

4.挂载一个新的磁盘用于替换原来的表决盘(如果不更换表决盘,此步骤可直接跳过)

crsconfig_params配置文件可以用于查看之前设置表决盘信息和修改表决盘操作。

4.修改crsconfig_params配置文件,此配置文件里记录了等下重建rac所需要的一些配置信息,因为我们要将表决盘从3块换成1一块,所以需要更改为正确的信息。(by all)

vim /u01/app/11.2.0/grid/crs/install/crsconfig_params

将
ASM_DISKS=/dev/raw/raw1,/dev/raw/raw2,/dev/raw/raw5
ASM_REDUNDANCY=NORMAL
改为
ASM_REDUNDANCY=External
ASM_DISKS=/dev/raw/raw6

5.使用root用户重建ocr和olr(by all)

使用root.sh脚本完成重建,其实这就是在安装RAC中执行的脚本,默认位置为:$GRID_HOME/

/u01/app/11.2.0/grid/root.sh

6.使用grid用户将监听程序配置添加到 Oracle Clusterware。(by all)

srvctl add listener -l listener

7.使用oracle用户将数据库配置添加到 Oracle Clusterware。(by all)

srvctl add database -d oracledbrac -o /u01/app/oracle/product/11.2.0/db -c RAC

8.使用oracle将数据库实例配置添加到 Oracle Clusterware。(可以在一台服务器上执行)

srvctl add instance -d oracledbrac -i orcl1 -n rac1
srvctl add instance -d oracledbrac -i orcl2 -n rac2

9.使用root用户重启crs(在一台执行就可以)

[root@rac1 ~]# /u01/app/11.2.0/grid/bin/crsctl start cluster -all

这里报CRS-4000错误,经检查两个节点的ASM数据盘没有mount

方法1:使用asmca在GUI下装载磁盘
方法2:使用asmcmd在命令下装载磁盘

装载磁盘以后,手动启动两个节点的数据库实例。

sqlplus / as sysdba
SQL> startup;
ORACLE instance started.

Total System Global Area  830930944 bytes
Fixed Size                  2257800 bytes
Variable Size             599788664 bytes
Database Buffers          226492416 bytes
Redo Buffers                2392064 bytes
Database mounted.
Database opened.

启动两个实例以后,尝试使用工具连接scan-ip数据库看是否成功。已经可以成功连接,至此集群恢复成功。

10.检查集群状态,所有状态均已正常。

此时将服务器重启后再此验证全部正常,至此RAC在OCR无备份情况下恢复过程全部完成。

[grid@rac1 ~]$ olsnodes -n
rac1    1
rac2    2

[grid@rac1 ~]$ ps -ef|grep lsnr|grep -v 'grep'|grep -v 'ocfs'|awk '{print$9}'
LISTENER_SCAN1
LISTENER

[grid@rac1 ~]$ srvctl status asm -a
[grid@rac1 ~]$ lsnrctl status
[grid@rac1 ~]$ srvctl config database -d oracledbrac
[grid@rac1 ~]$ asmcmd lsdsk --statistics -G DATA
[grid@rac1 ~]$ crsctl check crs
[grid@rac1 ~]$ crs_stat -t -v

猜你喜欢

转载自blog.csdn.net/viviliving/article/details/90018517