当前位置: 首页 > news >正文

Alter database open fails with ORA-00600 kcratr_nab_less_than_odr

Alter database open fails with ORA-00600 kcratr_nab_less_than_odr (Doc ID 1296264.1)​编辑To Bottom



APPLIES TO:

Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.1 [Release 11.2]
Oracle Database - Enterprise Edition - Version 12.1.0.1 to 12.1.0.1 [Release 12.1]
Oracle Database - Standard Edition - Version 11.2.0.1 and later
Oracle Database - Enterprise Edition - Version 11.2.0.2 to 11.2.0.2 [Release 11.2]
Information in this document applies to any platform.

 

SYMPTOMS

After Power Fail Alter database open fails with

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

# The Database can't open at this Point. In the corresponding Tracefile we can find this Error Callstack:


dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=1h50ks4ncswfn) -----
ALTER DATABASE OPEN

----- 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

CHANGES

Power failure

CAUSE

There was a power failure causing logical corruption in controlfile

This Problem is caused by Storage Problem of the Database Files.
The Subsystem (eg. SAN) crashed while the Database was open.
The Database then crashed because the Database Files were not accessible anymore.
This caused a lost Write into the Online RedoLogs and/or causing logical corruption in controlfile so Instance Recovery is not possible and raising the ORA-600.
 

SOLUTION

Option a:  Do cancel based reocvery, and apply 'current online redolog' manually
------------

SQL>Startup mount ;

SQL>Show parameter control_files

Query 1
------------

SQL> select a.member, a.group#, b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status='CURRENT' ;

Note down the name of the redo log

SQL> Shutdown abort ;

Take a OS Level backup of the controlfile (This is to ensure we have a backup of current state of controlfile)

SQL> Startup mount ;
SQL> recover database using backup controlfile until cancel ;

Enter location of redo log shown as current in Query 1 when prompted for recovery

Hit Enter

SQL> Alter database open resetlogs ;

Option b: Recreate the controlfile using the Controlfile recreation script
-----------

NOTE:  If you are using RMAN backup without a catalog, you will need to catalog the backups after the controlfile is recreated.  For tape backups, capture your backup information before recreating the controlfile as this will be needed.  

With database in mount stage

$ rman target /
rman> spool log to '/tmp/rman.log';
rman> list backup ;
rman> exit

# Keep this log handy

Go to sqlplus

SQL> Show parameter control_files

Keep this location handy.

SQL> oradebug setmypid
SQL> Alter session set tracefile_identifier='controlfilerecreate' ;
SQL> Alter database backup controlfile to trace noresetlogs;
SQL> oradebug tracefile_name ; --> This command will give the path and name of the trace file

Go to this location ,Open this trace file and select the controlfile recreation script with NOResetlogs option

SQL> Shutdown immediate;

Rename the existing controlfile to <originalname>_old ---> This is Important as we need to have a backup of existing controlfile since we plan to recreate it

SQL> Startup nomount

Now run the Controlfile recreation script with NO Resetlogs option.

SQL> Alter database open ;

For database version 10g and above

Once database is opened you can recatalog the rman backup information present in the list /tmp/rman.log using

Rman> Catalog start with '<location of backupiece>' ;

If backups are on tape, and you are not using a catalog, backups can be cataloged using information in:
How to Catalog Tape Backup Pieces (Doc ID 550082.1)


Once the database has been opened using the Option a or Option b,  it is recommended to take a hot backup of the database.  The same steps are applicable to RAC if all instance are down with same error.

If  both Options (a|b) fails,  or you do not have the full set of files, then you have to restore and recover the Database from a recent Backup. 

REFERENCES


NOTE:550082.1 - HOW TO CATALOG TAPE BACKUP PIECES

相关文章:

  • CSS BFC是什么,应用实例
  • 阿里云国际站:云备份
  • 【MybatisPlus】条件构造器、自定义SQL、Service接口
  • Java排序算法之基数排序
  • 物联网AI MicroPython学习之语法 network网络配置模块
  • 2010年数据结构408
  • Realistic fault detection of li-ion battery via dynamical deep learning
  • JimuReport积木报表 v1.6.5 版本发布—免费报表工具
  • AIOT数字孪生智慧工地一体化管理平台源码
  • Vue3 源码解读系列(五)——响应式
  • [Socket]Unix socket 运行权限问题
  • 关于跨域问题的个人理解
  • Vue 3.0 + vite + axios+PHP跨域问题的解决办法
  • 【数据结构】顺序表 | 详细讲解
  • 17. 机器学习——SVM
  • ES6指北【2】—— 箭头函数
  • $translatePartialLoader加载失败及解决方式
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Computed property XXX was assigned to but it has no setter
  • CSS 三角实现
  • FastReport在线报表设计器工作原理
  • fetch 从初识到应用
  • Leetcode 27 Remove Element
  • Object.assign方法不能实现深复制
  • Python学习之路16-使用API
  • React-生命周期杂记
  • uni-app项目数字滚动
  • 二维平面内的碰撞检测【一】
  • 记录一下第一次使用npm
  • 今年的LC3大会没了?
  • 聊聊flink的TableFactory
  • 前端面试题总结
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 世界上最简单的无等待算法(getAndIncrement)
  • 线上 python http server profile 实践
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 《天龙八部3D》Unity技术方案揭秘
  • kubernetes资源对象--ingress
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • #13 yum、编译安装与sed命令的使用
  • #Linux(Source Insight安装及工程建立)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (16)Reactor的测试——响应式Spring的道法术器
  • (4.10~4.16)
  • (SpringBoot)第二章:Spring创建和使用
  • (二)JAVA使用POI操作excel
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (论文阅读30/100)Convolutional Pose Machines
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)【Hibernate总结系列】使用举例
  • (转)Windows2003安全设置/维护
  • (转)利用ant在Mac 下自动化打包签名Android程序