Oracle-ASM磁盘组HIGH模式丢盘问题处理

背景:

        用户一套Oracle19c的RAC集群ASM磁盘组使用了3个存储作为HIGH以及NORMAL冗余模式,每个存储分别对应一个failgroup,其中2个存储出现了故障导致ASM磁盘组对应的failgroup磁盘全部offline,在存储恢复正常之后,需要将offline的磁盘加回ASM磁盘组

问题:

        一套Oracle19c的RAC集群ASM磁盘组ARCHDG,DATADG使用了3个存储作为HIGH冗余模式,OCRDG使用了3个存储作为normal模式,每个存储分别对应一个failgroup,其中2个存储出现了故障导致ARCHDG,DATADG磁盘组对应的两个failgroup磁盘全部offline,OCR磁盘组有一个failgroup offline

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第1张图片

问题处理:

      OCRDG盘处理

        OCRDG心跳盘磁盘只有FAILGROUP FG3的OCRDG_0002被force drop,因为集群至少需要2个心跳盘否则集群会直接crash,所以只能force drop一个FAILGROUP

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第2张图片

        在Oracle11.2之后,对于被force drop的OCR心跳盘,加回磁盘的操作跟普通的ASM磁盘组一样,直接通过add diskgroup加回即可

        将force drop的磁盘加回OCRDG,由于是被强制drop offline,现有的磁盘组成员的PST(partnership and status table)已经清理了该磁盘的信息,但被offline的磁盘里面还保存原有的磁盘信息,需要通过force add disk的方式或者先dd磁盘头信息再加进去

alter diskgroup OCRDG add disk '' force;

        重新加会OCRDG磁盘组之后,集群的ocr配置也会同步更新,将state状态offline的磁盘重新加回

crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   a6219f6847fb4f3abfc1c9e4618566e6 (/dev/xxxxx/ocrdg1) [OCRDG]
 2. ONLINE   ad3cf7c7e1b94fdfbff9dd920e7cb573 (/dev/xxxxx/ocrdg2) [OCRDG]
 3. ONLINE   5defc32620594f34bfed90517e9225e2 (/dev/xxxxx/ocrdg3) [OCRDG]

        ARCHDG盘处理

        ARCHDG归档日志盘failgroup FG2, FG3都被force drop,只剩failgroup FG1正常

ARCHDG盘由于进行drop磁盘操作,触发了数据的rebalance,但由于现在只要一个failgroup FG1,冗余不满足无法正常的rebalance下去报错ORA-59048,需要将被force drop的磁盘加回去,才能恢复rebalance

        因为磁盘已经被force drop,FG1的PST里面已经没有保留FG2,FG3的信息,尝试使用force add的方式将force drop的两个failgroup FG2,FG3磁盘加回去,但报错ORA-15107:missing or invalid ASM disk name,没办法将两个failgroup同时一起强制加回去

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第3张图片

        采用另一种方法,先将force drop的磁盘头信息dd,再采用正常加入add disk的方式

        先使用dd命令清理force drop磁盘的头信息

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第4张图片

        再将两个failgroup FG2,FG3重新加回磁盘组,force drop的磁盘全部成功加回去ARCHDG磁盘组

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第5张图片

        rebalance恢复正常,报错ORA-59048消失

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第6张图片

        注意要同时将两个failgroup一起加回,不能只加一个,否则会遇到以下ORA-15291报错,因为当前的磁盘组为HIGH模式,加磁盘时至少需要两个failgroup才能进行配对

        DATADG盘处理

        DATADG归档日志盘failgroup FG2, FG3的磁盘虽然没有被force drop,但由于IO错误,FG2,FG3的磁盘都被offline了,状态变成unknown,但FG1的PST还保留着FG2,FG3的信息

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第7张图片

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第8张图片

        尝试直接online disk或者整个failgroup,但由于磁盘组的属性配置compatible.rdbms为10.1.0.0小于11.1.0.0.0,无法使用该功能,并且当前由于磁盘组部分磁盘offline,无法更改磁盘组的属性compatible.rdbms

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第9张图片

        由于FG2,FG3的磁盘只是被offline,无法像恢复ARCHDG的方式通过dd磁盘+add disk的进行恢复,因为FG1还保留着FG2,FG3的信息,加进去会出现冲突failgroup磁盘数量不一致,还好当前集群为Oracle 19c版本,可以使用12c之后的新特性replace disk指定加入的磁盘替换已有的磁盘

        先通过kred采集FG2,FG3磁盘头里面原有的dskname信息

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第10张图片

      再使用dd命令清理FG2,FG3的磁盘的头信息

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第11张图片

        最后使用REPLACE DISK的方式将FG2,FG3加回磁盘组,完成DATADG磁盘的恢复操作

Oracle-ASM磁盘组HIGH模式丢盘问题处理_第12张图片

后续处理:

        在修复完磁盘组之后,将磁盘的compatible.rdbms属性设置为11.2.0.0.0,以确保磁盘由于IO报错或者disk repair time时间内offline的磁盘,可以使用Oracle ASM 11G的特性 ASM Fast Disk Resync 通过online disk或者failgroup进行快速的恢复,使用normal或者high模式的磁盘组compatible.rdbms建议都要设置为11.1.0.0.0及以上

你可能感兴趣的:(Oracle,oracle,数据库,dba,运维)