前言
表决磁盘的丢失往往会导致ASM实例无法启动,那么CRS就无法访问到存放在ASM磁盘组中的表决盘和OCR。 解决步骤分为三大步:
l 重新创建表决磁盘
l 拉起CRS
l 恢复OCR
实验环境
搭建平台:VMware Workstation
OS:OL 6.10
DB:Oracle 11.2.0.4
具体步骤
一、重新创建表决磁盘
1. 使用root关闭所有节点的CRS
$ su -
# $GI_HOME/bin/crsctl stop crs ##需要在每个节点执行, 如果关闭不了,可以添加“-f”参数强制关闭
2. 重建丢失的表决磁盘
将CRS启动到exclusive模式,CRS会在该模式下重新自动创建丢失的表决磁盘:
$ su -
# $GI_HOME/bin/crsctl start crs -excl
3. 强制挂载表决磁盘所在的磁盘组
# su - grid
$ sqlplus / as sysasm
sql>alter diskgroup <磁盘组的名字> mount force;
比如:sql>alter diskgroup OCR mount force;
注:
等待rebalance结束后,需要卸载这个磁盘组!命令:
SQL> alter diskgroup <磁盘组的名字> dismount;
二、拉起CRS
1. 重启该节点的CRS,并强制挂载其他非表决磁盘的磁盘组(挂载命令与第3步一致),比如data磁盘组
2. 启动所有节点的CRS
$ su -
# $GI_HOME/bin/crsctl start crs ##每个节点都要执行
三、恢复OCR
1.查看OCR的已有备份并检查备份是否成功
$ su -
# $GI_HOME/bin/ocrconfig -showbackup
# $GI_HOME/bin/ocrdump -backupfile <备份文件名>
2. 停止所有节点的CRS
$ su -
# $GI_HOME/bin/crsctl stop crs
3. 将crs启动到exclusive模式
# $GI_HOME/bin/crsctl start crs -excl -nocrs
注:
一定要添加参数“-nocrs”,不然ASM实例会挂掉!
4. 创建磁盘组
sql>create diskgroup <磁盘组名> normal redundancy disk '<磁盘在OS上的绝对路径>' FORCE ATTRIBUTE 'compatible.asm'='11.2.0.4.0','compatible.rdbms'='11.2.0.4.0','au_size'='4M','cell.smart_scan_capable'='TRUE'; ##au_size参数建议改成4M
5. 使用OCR备份进行OCR的恢复
从第1步的备份清单中选取一个备份来进行恢复操作,恢复命令:
# $GI_HOME/bin/ocrconfig -restore <备份文件名>
6. 校验OCR并查看表决磁盘状态
# $GI_HOME/bin/ocrcheck ##校验OCR
# $GI_HOME/bin/crsctl start resource ora.crsd -init ##启动crsd
# $GI/bin/crsctl query css votedisk ##查看表决磁盘状态, 被重建的磁盘组里面应该是空的
7. 添加表决盘
# $GI_HOME/bin/crsctl replace votedisk <磁盘组名>
8. 重启CRS
9. 再次校验OCR和表决磁盘
# $GI_HOME/bin/crsctl query css votedisk
# $GI_HOME/bin/ocrcheck
10. 最后启动整个集群
# $GI_HOME/bin/crsctl start cluster -all ##或者在每个节点都执行启动CRS的操作