Having a corruption somewhere in the database is one of the worst case scenarios I could ever imagine – especially if it “sleeps” somewhere in the data dictionary. Recently I did talk to a customer who encountered a failing upgrade due to a data dictionary corruption gotten introduced in an earlier release.
What can you do to check your database(s) prior to an upgrade or generally from time to time? Actually I know now two powerful possibilities:
- hcheck.sql
See MOS Note:136697.1
This script will check for known problems in Oracle8i, Oracle9i, Oracle10g
and Oracle 11g.
You will need to create hOut Helper Package first – please see MOS Note:101468.1 to download the script hout.sql - RMAN validation:
RMAN> backup check logical validate database;
See MOS Note:836658.1 for further details – and you can run this
with multiple parallel channels to speed up the run