[转帖]ORA-00600-[kcratr_nab_less_than_odr]问题小记

ORA-00600-[kcratr_nab_less_than_odr]问题小记

2018年03月12日 20:56:57 我不是VIP 阅读数 1500

https://blog.csdn.net/u010343795/article/details/79532799

协助同事解决了一个演示环境的问题 用的这个网页

感觉作者写的挺好的 

记得最开始盖国强里的书 还写过 这个东西如何处理.  kernel 的error code 的含义 

感觉oracle的东西也太多了.. 搞不太明白. 

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010343795/article/details/79532799

上午一实施哥们来求救说一个做ETL的数据库无法启动了,出现了ORA-00600的错误。之前也遇到过几次ORA-00600内部错误的问题,几次都是因为数据库服务器异常断电导致的,这类错误一般是oracle自己内部的bug。下面记录下解决的过程:

1、先将数据库启动到mount状态,没有问题,说明数据库成功的打开控制文件。

SQL> startup mount
ORACLE instance started.

Total System Global Area 8217530368 bytes
Fixed Size          2214856 bytes
Variable Size        5100274744 bytes
Database Buffers     3087007744 bytes
Redo Buffers           28033024 bytes
Database mounted.

2、尝试open数据库,此时主要会读取数据文件、redo日志等。

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
[4252], [17024], [17032], [], [], [], [], [], [], []

此时提示了ORA-00600: internal error code错误信息,这类错误一般是oracle自己内部的bug,在12C之后就没有了。此类信息的重点在arguments之后,但是一般也没有很具体的信息,此时我们可以在trace目录查看alert日志,若信息还不够明确,再根据alter log中相应的trc文件获取具体信息。 
之前也遇到过类似的情况,看到arguments: [kcratr_nab_less_than_odr]也就明白了原因——服务器异常断电,导致LGWR写联机日志文件时失败,由于数据库异常停机,所以启动的时候需要做实例级恢复,因为写联机日志失败所以无法从中获取这些redo信息。说说ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],[4252], [17024], [17032]的意思:1号线程实例需要恢复日志序列号为4252的联机日志文件,需要恢复到编号为17032的日志块,而实际上只能恢复到第17024个日志块。 
3、下面看看怎么解决。查看当前日志文件信息:

SQL> select group#,sequence#,status,first_time,next_change# from v$log;

    GROUP#  SEQUENCE# STATUS           FIRST_TIM NEXT_CHANGE#
---------- ---------- ---------------- --------- ------------
     1   4252 CURRENT          06-MAR-18   2.8147E+14
     3   4251 INACTIVE         06-MAR-18   4.9009E+12
     2   4250 INACTIVE         06-MAR-18   4.9009E+12

当前日志组组号为1,再通过v$logfile查看组号为1的redo日志的文件位置

SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- ------------------------------
         1         ONLINE  /home/wonders/app/wonders/oradata/orcl/redo01.log
         3         ONLINE  /home/wonders/app/wonders/oradata/orcl/redo03.log
         2         ONLINE  /home/wonders/app/wonders/oradata/orcl/redo02.log    

指定redo1.log恢复数据库

SQL> recover database until cancel using backup controlfile;
ORA-00279: change 4900911271334 generated at 03/06/2018 05:46:29 needed for
thread 1
ORA-00289: suggestion :
/home/wonders/app/wonders/flash_recovery_area/ORCL/archivelog/2018_03_12/o1_mf_1
_4252_%u_.arc
ORA-00280: change 4900911271334 for thread 1 is in sequence #4252

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/home/wonders/app/wonders/oradata/orcl/redo01.log
Log applied.
Media recovery complete.

恢复完成后必须以RESETLOGS方式打开数据库

SQL> alter database open resetlogs;

Database altered.

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11199319.html

时间: 2024-11-10 13:13:24

[转帖]ORA-00600-[kcratr_nab_less_than_odr]问题小记的相关文章

ora 00600 [kcratr_nab_less_than_odr] [4194]错误

业务场景:公司电缆被挖断,突然断电导致的宕机. [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Mon Apr 17 11:09:59 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release

Oracle 通过ADR工具 收集ORA-600错误信息

 问题描述: 2014-06-10 在点检数据库预警文件时,出现Ora -00600 错误,并且Rman L1 备份失败,查询相关资料,得知是Bug:9835218.于是,提SR寻求Oracle 官方技术支持. Oracle回复如下: Your Service Request has been submitted as anORA-600/ORA-7445 issue based on the problem type you chose when logging the SR. Additio

[Oracle]如何获得出现故障时,客户端的详细连接信息

客户坚持说 只是在 每天早上5点才运行下面的语句: select / * + FULL (TAB001_TT01) * / 'TAB001_TT01', count (*) from u01.TAB001_TT01 group by 'TAB001_TT01' 但是根据 Incident 文件的记载,发生时间是在 2017-09-26 10: 44: 50.166 , 客户怀疑 Oracle的数据库出现了其他的问题. 这样调查就跑偏方向了. (因为总所周知的原因,修改了敏感信息) 从下面这句“M

[Oracle]ORA-600[kdBlkCheckError]LOB坏块处理

客户环境报如下错误: ORA - 00600: Internal error code, arguments: [kdBlkCheckError], [2], [10388], [63068], [], [], [], [], [], [], [], [] alert log 中有这样的信息: Thu Sep 07 19:14:00 2017Corrupt Block Found        CONT = 0, TSN = 1, TSNAME = SYSAUX        RFN = 2,

[转帖]「日常小记」linux中强大且常用命令:find、grep

「日常小记」linux中强大且常用命令:find.grep https://zhuanlan.zhihu.com/p/74379265 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.

oracle instant client,tnsping,tnsnames.ora和ORACLE_HOME

前段时间要远程连接oracle数据库,但是又不想在自己电脑上完整安装oracle客户端,于是到oracle官网下载了轻量级客户端instant client.这玩意没有图形界面,全靠sqlplus远程连接服务器,所以不占地方,正好满足我这种追求"简单就好"的强迫症患者需求. 但是呢,可能是服务器那边没开监听端口,我在自己的机子上尝试了各种配置,包括tnsnames.ora,sqlnet.ora等,远程连接均告失败.为了排查问题,我先ping了一下服务器的外网地址,发现没问题.网上说,光

[小记]Android缓存问题

今天晚上,产品经理打电话说我们的Android App除了问题,问题很简单就是一个缓存问题,由于这个程序是前同事写的,我也只能呵呵一笑,有些事你就得扛.还是回到正题吧,这个缓存问题,实在有点奇葩,所以我才要记录下,希望避免 问题 看了代码,感觉上没问题,不过针对用户出现的问题,还是觉得这个逻辑就是错误的: 1 有文件缓存就不在请求网络 由于请求的那个接口返回的数据较大,做了一个文件缓存放到本地,这个没错,可是缓存完后,当下次在请求,居然先判断缓存文件是否存在,若存在就不在读取网络数据,而是直接用

SpringBoot - 二零一七0421小记

一.SpringBoot使用起来比起SpringMVC更便捷,在注解上的小变化,我记录了下面几个: @Controller + @ResponseBody = SpringMVC中用@RestController来代替前面两个注解,通过这个注解,可以将所有的前端http请求放入SpringBoot的Controller容器中,并返回json格式的数据给前端 @RequestMapping(value={"/hello","/hi"},method=RequestMe

广州postgresql用户会技术交流会小记 2015-9-19

广州postgresql用户会技术交流会小记  2015-9-19 今天去了广州postgresql用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用postgresql -X2的情况 第二个讲师介绍了postgresql里面的一些执行计划分析 我个人比较关注第一个session,因为涉及到真正的应用案例 网上有对postgresql -X2的简短介绍,我先转载过来 转载:http://francs3.blog.163.com/blog/static/405767272