When the data dictionary is currupted, how do I re-create it without disturbing the database?
In short, you cannot. Some data dictionary corruptions leave the database in an unusable state. The best recourse here is to restore from a backup before the corruption set in. Other data dictionary corruptions will stop certain operations from taking place. Again, restore from a backup to restore the data dictionary to a non-corrupt state.
In some cases, you can rerun catalog.sql and catproc.sql (as SYS) to re-create some data dictionary objects like views, packages and procedures. This can be run at any time. But this will not fix any corruptions with the data dictionary tables.
Dig Deeper on Oracle database design and architecture
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.