设为首页 收藏本站
查看: 779|回复: 0

[经验分享] 数据库启动报错:ORA-00600 [kcratr_nab_less_than_odr]

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-5-9 09:37:15 | 显示全部楼层 |阅读模式
最近由于机房停电事件,导致数据库主机异常关闭,主机恢复正常后,启动数据库报错:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [8120], [21090], [21205], [], [], [], [], [], [], []

查看alert日志,错误如下:
...省略...
ALTER DATABASE OPEN  #在open阶段报错了
Beginning crash recovery of 1 threads  #在进行crash recovery
parallel recovery started with 2 processes
Started redo scan
Completed redo scan
read 2095 KB redo, 98 data blocks need recovery
Errors in file /opt/oracle/diag/rdbms/stgorcl/stgorcl/trace/stgorcl_ora_22775.trc  (incident=89339):
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [8120], [21090], [21205], [], [], [], [], [], [], []
Incident details in: /opt/oracle/diag/rdbms/stgorcl/stgorcl/incident/incdir_89339/stgorcl_ora_22775_i89339.trc
...省略...

联系主机异常关闭事件,推测可能由于主机异常关闭引起数据库文件被损坏,结合数据库的报错信息看,怀疑是controlfile损坏了。

通过 kcratr_nab_less_than_odr 关键字,在MOS找一篇与此实际相符的文档Alter database open fails with ORA-00600 kcratr_nab_less_than_odr (文档 ID 1296264.1),对比文档与/opt/oracle/diag/rdbms/stgorcl/stgorcl/incident/incdir_89339/stgorcl_ora_22775_i89339.trc 的 "Call Stack Trace",基本确认该事件与文档描述的一致。

----- Call Stack Trace -----
ksedst1 <- ksedst <- dbkedDefDump <- ksedmp <- dbgexPhaseII <- dbgexProcessError <- dbgePostErrorKGE  <- kgeasnmierr <- kcratr_odr_check  <- kcratr <- kctrec <- kcvcrv <- kcfopd <- adbdrv <- opiexe <- opiosq0 <- kpoal8 <- opiodr <- ttcpip <- opitsk <- opiino <- opiodr <- opidrv <- sou2o <- opimai_real <- ssthrdmain <- main <- start

该故障是由于停电故障导致控制文件逻辑corruption造成,文档給出2个解决方案:
Option a: Do cancel based reocvery, and apply 'current online redolog' manually #做recover using backup controlfile
Option b: Recreate the controlfile using the Controlfile recreation script  #重建控制文件

方案a更简单,采用方案a:

找到CURRENT redo,做recover需要用到这个文件。

sys@STGORCL> select a.member, a.group#, b.status from v$logfile a ,v$log b where a.group#=b.group#;

MEMBER                                       GROUP# STATUS
---------------------------------------- ---------- ------------------------------------------------
/opt/oracle/oradata/stgorcl/redo03.log            3 INACTIVE
/opt/oracle/oradata/stgorcl/redo02.log            2 CURRENT
/opt/oracle/oradata/stgorcl/redo01.log            1 INACTIVE


SQL> recover database using backup controlfile until cancel ;
ORA-00279: change 140911009 generated at 04/24/2016 16:12:46 needed for thread
1
ORA-00289: suggestion :
/opt/oracle/product/11.2.0/db_1/dbs/arch1_8120_857011473.dbf  #该redo实际未归档,对应的是/opt/oracle/oradata/stgorcl/redo02.log
ORA-00280: change 140911009 for thread 1 is in sequence #8120


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/opt/oracle/oradata/stgorcl/redo02.log
Log applied.
Media recovery complete.


最后使用resetlogs打开数据库

SQL> alter database open resetlogs;

Database altered.


注:resetlogs后,需要重新备份,重新搭建DG


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-214517-1-1.html 上篇帖子: oracle的blob类型到sqlserver 下篇帖子: Oracle_bond网卡配置 数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表