阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle RAC for aix 存储双控锁盘导致ASM控制文件损坏恢复实例

196次阅读
没有评论

共计 2156 个字符,预计需要花费 6 分钟才能阅读完成。

故障场景:AIX IBM 存储更换存储控制器电源模块导致存储双控同时掉电,存储双控恢复供电后发生锁盘,IBM 解盘后 RAC 数据库无法正常启动,启动报错:ORA-00600: internal error code, arguments: [2131], [33], [32], [], [], [], [], [], [], [], [], [] 

恢复方案确定:由于损坏的数据库数据量巨大,有 30T 之多,并且要求尽快打开数据库,可以接受丢失部分数据,数据库有备份。商议之下,使用备份控制文件恢复数据库,进行数据库的不一致性恢复。

恢复过程:

1、从磁带库拉取控制文件备份集并恢复到 Oracle RAC 数据库 ASM 存储中 

– 此时尝试启动数据库会遇到报错信息:

ORA-00600: internal error code, arguments: [3020], [718], [2828551], [3014338823], [], [], [], [], [], [], [], [] 

 ORA-10567: Redo is inconsistent with data block (file# 718, block# 2828551, file offset is unknown bytes) 

 2、生成 Oracle 的 pfile 并加入如下三个参数 

_allow_resetlogs_corruption=true #跳过 redo 崩溃,允许 resetlogs 开库 

undo_management=manual  #将 undo 管理修改为手工管理 

event=”10513 trace name context forever,level 2″ #开 10513 事件跳过一致性验证 

*.cluster_database=false 

– 此时,尝试启动数据库会遇到报错信息:

ORA-00600: internal error code, arguments: [2662], [3735], [1979553782], [3735], [1979584838], [20971664], [], [], [], [], [], [] 

 3、Oracle 数据库使用备份控制文件恢复数据库后,需要推进控制文件的 SCN 

数据库当前的 SCN= 3735.1979584838=(3735*4294967296)+1979584838=16043682435398 

 giga=16043682435398/1024/1024/1024=14941.843=14941 

需要推进的新 SCN=14942*1024*1024*1024=16043850334208 

 Oracle 数据库 10g 控制文件推进可以在 pfile 中加入参数:_minimum_giga_scn;

ORACLE 11.2.0.4 SCN 推进方法 oradebug 

本次数据库控制文件 SCN 推进步骤步骤 

SQL> oradebug setmypid 

 Statement processed. 

 SQL> oradebug dumpvar sga kcsgscn_ 

 kcslf kcsgscn_ [700000000019B70, 700000000019BA0) = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 07000000 00019850 

 SQL> oradebug poke 0x700000000019B70 8 16043850334208 

 BEFORE: [700000000019B70, 700000000019B78) = 00000000 00000000 

 AFTER:  [700000000019B70, 700000000019B78) = 00000E97 80000000 

 SQL> oradebug dumpvar sga kcsgscn_ 

 kcslf kcsgscn_ [700000000019B70, 700000000019BA0) = 00000E97 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 07000000 00019850 

 SQL> 

– 此时尝试启动数据库会遇到报错信息:

ORA-00600: internal error code, arguments: [4193], [], [], [], [], [], [], [], [], [], [], [] 

接下来 ORA600[4193] 的处理就是 ORACLE rac 的 undo 表空间的重建了,需要配合参数:undo_management 和_CORRUPTED_ROLLBACK_SEGMENTS。

 4、处理完 ORA600[4193] 后,数据库能够启动并打开到 open 状态,此时最好进行全库备份,如果条件允许,就重建数据库以逻辑的方式导出故障数据库导新环境。否则,后续的使用中会时不时遇到如下报错信息:

ORA600[6122] 和 ORA600[KDSGRP1],实质文件是索引逻辑坏块引起的,以 drop 和 create 重建相关的索引即可。

更多 Oracle 相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2156字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中