I just saw your posting at http://www.ardentperf.com/2007/05/04/recovering-your-controlfile-without-a-backup
You didn't actually "recover" the controlfile. You really "restored" it. You had done a shutdown abort of the database.The datafiles were not in sync. The Recover command looks at all the datafile headers and realises that some datafiles are "ahead" of the others. The Recover command, then, DOES need an ArchiveLog (or the active online redo that hadn't been archived yet -- faking it is as an ArchiveLog).
You were testing a specific scenario where the controlfiles were deleted when the instance were running.
Test the scenario where the the database is shutdown normal/immediate (or even a RECOVER has been completed without an OPEN) -- then restore or recreate controlfile and try a RECOVER. See if you can just do a CANCEL there.
At 12:43 AM Saturday, Hemant K Chitale wrote:
Interesting.. Question : In your recovery testing, what was the exact sequence ? Was it ?a) Restore an older controlfile binary backup -- only controlfile restored, datafiles being current b) Issue RECOVER DATABASE USING BACKUP CONTROLFILE -- did you also specify "UNTIL CANCEL" ?OR a) Create Controlfile b) Issue RECOVER DATABASE ... commands.What if you had also restored DataFiles from the older backup ? -- ie even the DataFiles were not "current" ? Then, if that was a Hot Backup, you would have had to apply some ArchiveLog(s). If it was a Cold Backup, ... (ie ControlFile and DataFiles from Monday)you should have been able to CANCEL and OPEN RESETLOGS without havingany online redo log file (as today when you do the restore, it is Wednesday so yourondisk online redo logs are Wednesday's files). Hemant At 10:36 PM Friday, Jeremy Paul Schneider wrote:Related to this... we were testing some recovery scenarios for a "tech night" this past monday night and walked through controlfile recovery among other things...Even if you have a clean database shutdown (immediate) and restore *only* your controlfiles, we found that you still need to process the last online redo log then open with resetlogs. If you just say CANCEL then it won't open the database. This is interesting because your datafiles do not actually need recovery. However Oracle makes you process that last online log and open with resetlogs. My theory is that Oracle doesn't actually update the SCN in the control file until it "recovers" a logfile... even if there's nothing in that logfile to actually process...FYI, we were testing on <http://10.2.0.2>10.2.0.2 -Jeremy
Hemant K Chitale http://web.singnet.com.sg/~hkchital and http://hemantscribbles.blogspot.com and http://hemantoracledba.blogspot.com"First they ignore you, then they laugh at you, then they fight you, then you win" !" Mohandas Gandhi Quotes : http://www.brainyquote.com/quotes/authors/m/mohandas_gandhi.html