Oracle OCR,Vote disk故障恢复方案

 

Oracle OCR,Vote disk故障恢复方案

 

1   概述

OCR/Vote disk 磁盘组故障场景恢复操作方案。

测试版本:11.2.0.4.0

适用于以下场景:

  1. 操作维护 OCR/Vote disk 对应的磁盘组,提前备份了 OCR 文件信息,以便存在回退维护的空间。
  2. 由于某些原因导致 OCR/Vote disk 的磁盘组丢失从而 CRS stack 无法运行。
  3. 不存在有效的 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

posted @ 2024-04-23 14:53  PiscesCanon  阅读(59)  评论(0编辑  收藏  举报