Symptoms
After Power Fail Alter database open fails withORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]
Solution
Option a
------------
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 back 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 ;
------------
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 back 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
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 ;
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 NO Resetlogs option
SQL>Shutdown immediate;
Rename the existing controlfile to_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 mode
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 '' ;
-----------
Recreate the controlfile using the Controlfile recreation script
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 ;
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 NO Resetlogs option
SQL>Shutdown immediate;
Rename the existing controlfile to
SQL>Startup nomount
Now run the Controlfile recreation script with NO Resetlogs mode
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 '
Once the database has been opened using the option a or option b its recommended to take a hot backup of the database.
Same Steps are applicable to Rac if all instance are down with same error.
31 comments:
THANK YOU!
Spent about 5 hours getting nowhere and this fixed it in the past 5 minutes. wonderful.
Thanks .. It helped me.
Thanks a lot Mike for Relief :)
Thanks A lot for relief info.....
Thanks a lot !
THANK YOU!!!!!!!!!!!!
a great help....and great detailed list of the problem!
it worked in the first shot :)
thank you :)
This might be an old post, but it was wonderful information and helped me fix my Oracle problem. I'm back up and running now. Thank you!
thanx
much needed help. thanx a lot....
much needed help. thanx a lot...
one minute solution,..
trims,..
one minute solution,.. :)
terimakasih,.
one minute solution,.. :)
terimakasih,.
Very good solution. Thanks.
THANKS A LOT!!!
Excellent solution!
...saved me hours!!
Battled for 2 hours, then found your blog and solved it in 5 minutes. Thank you for your kindness in placing the solution!
Great Solution !!!
Saved me days.
Thank you for the guidance. I could recover the crashed DBA installed in my windows by blindly following the steps
Thanx a lot..
dude u are the champ....thanks a ton!!!
Thank you!I was clueless about the issue.This post saved my time!
THANK YOU!!!!
Thank you so much, I am a newbie and your excellent steps helped me get my locally installed database back so I can do my last week of homework before finals!!! A+++ to you!!!
Thankyou very mutch, excelent Blog and solution.
very good article really, thanks it reduced my headache.
Great!
Awesome. Thanks
Great! I tried first option. It works fine! Thanks!
There is a missing ; in Option a after the following line:
sql>select a.member,a.group#,b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status='CURRENT'
took me some time to realize why the command did not work properly. perhaps there are some other inexperienced users like me out there whom this will help
Work like a charm!
Many thanks :)
thank you, it`s work, you are save my work
Post a Comment