There are 100 datafiles, numbered from 1 to 100. File number 10 is deleted and it has 500 MB of data. The database is working in archive log mode. How can be the database recovered ? While doing recovery the archive logs applied are from nos 1 to 100, but 50 gets corrupted. What do we do? Can we proceed further? If so how?
Total Answers and Comments: 4
Last Update: September 08, 2009 Asked by: shanthiavari
you can recover the datafiles byusing the following command mount the database and issues the following comand before openining it
SQL> alter database recover datafile '< datafile file name.'; SQL> alter database open;
Part 2 if while doing a recovery the archive logs gets corrupted then we are in serious trouble. Rolling forward tranactions need the archive logs to be proper if they are corrupted we will need some advanced recovery techniques I forgot what the names of the advanced recovery utilities but Oracle suggests in such a case the you get in touch with support before using those utilities. But to be more precise and answer your question I do not think we can recover the database fully with corrupted archive logs especially if the redo logs have been swtiched.
If the archive log which was missed has been still exists in the online redo log file. That means the log sequence number for that file in the online redo log files doesnt get overwritten at the time we plan to do recovery then switch that redo log file again so that we will get the corrupted log file back.
Your database in archive log mode one of your archive file is missing there is no way to performed complete recovery you can able to do incomplete recovery recover database till cancelled or there is another way if you have a export copy of that datafile latest than that archive log file missed then import that datafile data loss is lesser as compared to incomplete recovery.
In this situation you're not able to recover the database. Of course it can be done by using nonsupported and nondocumented parameter "_ALLOW_RESETLOGS_CORRUPTED" but you HAVE NOT to use it without Oracle Support's suggestion
If your database is running take a whole backup delete all archived redo log files and start creating archived redo log files again