Oracle OCR,Vote disk故障恢复方案
Oracle OCR,Vote disk故障恢复方案
1 概述
OCR/Vote disk 磁盘组故障场景恢复操作方案。
测试版本:11.2.0.4.0
适用于以下场景:
- 操作维护 OCR/Vote disk 对应的磁盘组,提前备份了 OCR 文件信息,以便存在回退维护的空间。
- 由于某些原因导致 OCR/Vote disk 的磁盘组丢失从而 CRS stack 无法运行。
- 不存在有效的 OCR 备份,需要重新初始化 OCR 和 voting。
https://www.cnblogs.com/PiscesCanon/p/18152885
1 备份OCR
1.1 自动备份
ocrconfig -showbackup
或者
ocrconfig -showbackup auto
1.2 手工备份
1.2.1 备份OLR
root用户: ocrconfig -local -manualbackup ocrconfig -local -showbackup
1.2.2 备份OCR
root用户: ocrconfig -manualbackup ocrconfig -showbackup manual
1.3 逻辑导出OCR
root用户: sudo -u grid mkdir -p /home/grid/daily/$(date +%Y%m%d)/ ocrconfig -export /home/grid/daily/$(date +%Y%m%d)/ocr_$(date +%Y%m%d).exp
2 备份参数文件
su - grid mkdir /home/grid/daily/$(date +%Y%m%d)/ sqlplus / as sysasm create pfile='/home/grid/daily/20240422/pfile20240422.ora' from spfile;
3 集群宕机恢复OCR
OCR/Vote disk 的磁盘故障超过其冗余模式下允许故障的磁盘成员数量导致 CRS/GI stack 在任何节点不在可用。
3.1 故障模拟
3.1.1 OCR信息
crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 0095259e8c224f78bfd3c48245b6af62 (/dev/mapper/asm-ocr1) [OCR] 2. ONLINE 5424a64bc8c54fb0bf4334fa0d62fdc3 (/dev/mapper/asm-ocr2) [OCR] 3. ONLINE 068ab6c8a7f94f75bfafa32a8450ee6e (/dev/mapper/asm-ocr3) [OCR]
3.1.2 dd格式化
dd if=/dev/zero of=/dev/mapper/asm-ocr1 bs=1024 count=5000 dd if=/dev/zero of=/dev/mapper/asm-ocr2 bs=1024 count=5000 dd if=/dev/zero of=/dev/mapper/asm-ocr3 bs=1024 count=5000
3.2 存在有效备份
3.2.1 OCR最新备份
其中,最新的备份在手工备份产生的备份文件中。
PS:指令 cemutlo -n 需要集群运行时才能跑,无法运行时替换为集群名称即可。
ocr备份: ll $ORACLE_HOME/cdata/`cemutlo -n`/ total 41592 -rw------- 1 root root 7098368 Apr 17 12:39 backup00.ocr -rw------- 1 root root 7098368 Apr 17 08:39 backup01.ocr -rw------- 1 root root 7098368 Apr 17 04:39 backup02.ocr -rw------- 1 root root 7098368 Apr 17 00:39 day_.ocr -rw------- 1 root root 7098368 Apr 16 15:40 day.ocr -rw------- 1 root root 7098368 Apr 16 15:40 week.ocr olr备份: ll $ORACLE_HOME/cdata/`hostname` total 13436 -rw------- 1 root root 6787072 Apr 16 11:26 backup_20240416_112653.olr -rw------- 1 root root 6971392 Apr 17 14:22 backup_20240422_142214.olr
3.2.2 完全关闭GI
所有节点,root用户:
crsctl stop crs -f
3.2.3 exclusive启动CRS
备份节点,root用户:
crsctl start crs -excl -nocrs
重点:
新选项”-nocrs“在 11.2.0.2 被引入,用来阻止 ora.crsd 资源启动。指定这个选项是很重要的,否则启动 ora.crsd 资源失败会拖累 ora.cluster_interconnect.haip 资源失败,这会反过来导致
ASM 崩溃
3.2.4 准备OCR磁盘
使用旧的或者准备新的 OCR 磁盘。
建议使用准备3块新的 OCR 磁盘,我这里为了方便还是用旧的3块盘(dd asm-ocr3)。
需要确保所有节点均能访问。
3.2.5 创建OCR磁盘组
sqlplus / as sysasm 如果asm_diskstring为空: alter system set asm_diskstring='/dev/mapper/asm*' scope=memory sid='*'; select NAME,FAILGROUP,OS_MB,STATE,TOTAL_MB,FREE_MB,LABEL,PATH from v$asm_disk; create diskgroup ocr normal redundancy disk '/dev/mapper/asm-ocr1' disk '/dev/mapper/asm-ocr2' disk '/dev/mapper/asm-ocr3' attribute 'compatible.asm'='11.2';
3.2.6 还原OCR备份
使用最新的有效备份。
备份节点,root用户: ocrconfig -restore /u01/app/11.2.0/grid/cdata/`cemutlo -n`/backup00.ocr
或者使用最新的逻辑备份。
备份节点,root用户: ocrconfig -import /home/grid/daily/$(date +%Y%m%d)/ocr_$(date +%Y%m%d).exp
3.2.7 重建voting file
备份节点,root用户:
crsctl replace votedisk +OCR
3.2.8 OCR信息
ocrcheck PS:OLR为:ocrcheck -local crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 6929ca1f542f4faabfd17ae1777e2352 (/dev/mapper/asm-ocr1) [OCR] 2. ONLINE 677ddd208bbe4f0cbf26885e5fd28597 (/dev/mapper/asm-ocr2) [OCR] 3. ONLINE 8bb7a6df4c854f70bf151b6d14f6146a (/dev/mapper/asm-ocr3) [OCR] Located 3 voting disk(s).
3.2.9 重建spfile
准备一个文件(例如 /tmp/asm_pfile.ora),包含 ASM 启动参数—这可能和下面的示例有所不同。如果有疑问,查验 ASM alert log,因为 ASM 实例启动中会列出所有非默认的参数值。请注意,最后一次 ASM 启动(经由上面的 CRS 启动步骤)不会使用 spfile,所以,需要定位到 CRS 磁盘组丢失之前的启动过程。
因为我备份过,直接使用备份的参数文件。
sqlplus / as sysasm create spfile='+ocr' from pfile='/home/grid/daily/20240422/pfile20240422.ora';
3.2.10 重启CRS
所有节点,root用户: crsctl stop crs -f crsctl start crs
3.3 不存在备份
3.3.1 锁定解除
在删除节点之前,先解除锁定
在解除配置一个节点之前,确保它不是被锁定的,即:
root用户: olsnodes -s -t 若存在锁定的节点: crsctl unpin css -n <racnode1>
3.3.2 解除配置
以下几种情况需要解除配置:
l OCR 损坏并且没有好的备份
l 或者由于缺失 /etc or /var/opt/oracle 目录下的 oracle cluster 相关文件导致 GI 堆栈无法在任意一个节点启动,比如丢失 init.ohasd 等。如果 GI 可以在至少一个节点启动,请参考下面章节"B. Grid Infrastructure Cluster - One or Partial Nodes"。
l $GRID_HOME 应该是完整的,因为 deconfigure 配置不会修复 $GRID_HOME 的损坏。
3.3.2.1 收集信息
解除配置之前,如果可能请使用 grid 用户收集以下信息,当重新配置完成后用于生成用户资源的列表来重新加入到集群中。
crsctl stat res -t > crsctl_stat_res_t.log crsctl stat res -p > crsctl_stat_res_p.log crsctl query css votedisk > crsctl_query_css_votedisk.log ocrcheck > ocrcheck.log oifcfg getif > oifcfg_getif.log srvctl config nodeapps -a > srvctl_config_nodeapps_a.log srvctl config scan > srvctl_config_scan.log srvctl config asm -a > srvctl_config_asm_a.log srvctl config listener -l <listener-name> -a > listener.log srvctl config database -d <dbname> -a > db.log srvctl config service -d <dbname> -s <service-name> -v > service.log
3.3.3 完全关闭GI
所有节点,root用户:
crsctl stop crs -f
3.3.3.1 解除配置
如果 OCR 和 Voting Disk 没有在 ASM 上面,或者 OCR 和 Voting Disk 在 ASM 上面但是没有用户数据在 OCR/Voting Disk ASM diskgroup:
在所有远程节点,使用 root 执行: $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose 一旦上面命令在所有节点执行完毕,在本地节点,使用 root 用户执行: $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose -lastnode |
-lastnode选项会导致rootcrs.pl脚本清除 OCR 和投票磁盘上的数据。
3.3.3.2 安装cvuqdisk
root用户: cd /soft/grid/rpm rpm -ivh cvuqdisk-1.0.9-1.rpm
3.3.3.3 图形化重配置
grid用户: 配置DISPLAY,略。 /u01/app/11.2.0/grid/crs/config/config.sh 图形化操作,执行脚本步骤,root用户: /u01/app/11.2.0/grid/root.sh
3.3.3.4 修改asm_diskgroups
alter system set asm_diskgroups='DATA' sid='*' scope=both;
3.3.3.5 挂载data磁盘组
所有节点的ASM实例: alter diskgroup data mount;
3.3.3.6 注册实例、db
srvctl add database -d zkm -n zkm -o $ORACLE_HOME -p +data/zkm/spfilezkm.ora srvctl add instance -d zkm -i zkm1 -n oracle1 srvctl add instance -d zkm -i zkm2 -n oracle2
4 参考
Linux/Unix 平台,在CRS 磁盘组完全丢失后,如何恢复基于 ASM 的 OCR (文档 ID 2331776.1)
11.2/12c Grid Infrastructure 如何备份或还原OLR (文档 ID 2668070.1)
OCR/Vote disk 维护操作: (添加/删除/替换/移动) (文档 ID 1674859.1)
How to Reinstall Oracle Grid Infrastructure Without Disturbing RDBMS Installation (文档 ID 1276975.1)
How to Configure or Re-configure Grid Infrastructure With config.sh/config.bat (文档 ID 1354258.1)
如何(Deconfigure)解除配置/(Reconfigure)重新配置(重建 OCR)或卸载 GI (文档 ID 2016852.1)
https://docs.oracle.com/cd/E11882_01/rac.112/e41959/votocr.htm