- For individual users
- Instant access to solutions
- Ask your tech questions
- Start your 30-day Free Trial
Main Topics
Browse All TopicsThis is a two-part question.
I have a partially restored database where I have some new, and some older datafiles. Together I have them all. No archivelogs, no anything. This is the path I must take!
I have to do a force open of the database with _ALLOW_RESETLOGS_CORRUPTIO
This is ok, and I will have a inconsistent database afterwards. However, there is not much data added in the database between the datafiles I have, perhaps nothing if I am real lucky. Is it possible to make this inconsistent database consistent in some way afterwards, and then go through the database and check for concistency errors (added data in some tables and then remove it etc.)
If not, I have to export all tables, rebuild the database, import tables and rebuild indexes. This is a rather complex database with lots of users/stored procedures/views etc. so the rebuild will take for ages. Any short-cuts that can be taken here, for instance exporting out the build of the database in script format or something from the corrupt database?
This is urgent as the dabase is a production database and is down for the moment.
Thanks,
Morten
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Business Accounts
Answer for Membership
by: SDuttaPosted on 2003-06-10 at 09:14:52ID: 8692178
If you don't have a consistent backup and no archivelogs, I wouldn't call it a production database. Although it looks like _ALLOW_RESETLOGS_CORRUPTIO N = TRUE is your only chance, this parameter is not supported by Oracle. If you have any Oracle support, they will invalidate the support on your database if you use this parameter without discussing it with them through the iTAR process.
In case you have to resort to using this parameter, once the database comes up, here are the steps :
1) Do a full cold export.
2) Create a backup control file with "alter database backup controlfile to trace;".
3) Edit the trace file (*.trc ) in the user_dump_dest location that contains all the commands reqired to recreate your controlfile and database. You can edit this file to remove all datafiles except the SYSTEM, TEMP and RBS/UNDO datafiles. Then rename the .trc file to some meaningful name and with the .sql extension.
4) Save off your INIT<SID>.ORA file which you will need later.
5) Recreate the database by connecting to an idle instance and STARTUP NOMOUNT (with pfile from step 4) use the CREATE CONTROLFILE ... LOGFILE ... DATAFILE ... command from the file created in step 3.
6) Run the CATALOG, CATPROC scripts as you would run on a new database.
7) Do a full import from the dump file created in step1. This will recreate all indexes from data in the tables.
8) At this point you can look for any missing data in your tables and add it in.