-------------------------------------
Oracle Database 11.2.0.1.0
Archive Log Mode
RMAN Backup is performed daily, with backup control file and backup archive log file 1 time to disk.
------------------------------------
Hi Ask Tom team,
After power failure i got above error. I recovered database using below steps. Did not loose any transaction, which i verified manually.
But still i am not sure completely that, was it the best approach to recover ?
could i loose some data by using these approach ?
could there be any other better way of recovering database ?
Could database be recovered by RMAN ( I tried RESTORE DATABASE from RMAN, but it was not working ) ?
Thanks and regards
Fahd
Enter user-name: sys@orcl2 / as sysdba
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],[1384], [1270], [2885], [], [], [], [], [], [], []
SQL> select a.member, a.group#, b.status from v$logfile a ,v$log b where a.group# = b.group# and b.status='CURRENT' ;
MEMBER
--------------------------------------------------------------------------------
GROUP# STATUS
---------- ----------------
D:\APP\DELL\ORADATA\ORCL2\REDO01.LOG
1 CURRENT
SQL> recover database using backup controlfile until cancel ;
ORA-00279: change 35045479 generated at 10/15/2019 23:18:20 needed for thread 1
ORA-00289: suggestion :
D:\APP\DELL\FLASH_RECOVERY_AREA\ORCL2\ARCHIVELOG\2019_10_17\O1_MF_1_1384_%U_.ARC
ORA-00280: change 35045479 for thread 1 is in sequence #1384
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
D:\APP\DELL\ORADATA\ORCL2\REDO01.LOG ----Copied current Redolog file which i got from above query
Log applied.
Media recovery complete.
SQL> Alter database open resetlogs ;
Database altered.
MOS note 1296264.1 explains what to do, and it looks like you followed those steps.
Do cancel based reocvery, and apply 'current online redolog' manually
------------
SQL>Startup mount ;
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 ;
You could have done the same with RMAN, ie, issued a recover but I suspect it would have not known that it wanted to apply the current redo log.