Verify that there is no database data dictionary corruption

The following set of commands generate a script that you will subsequently run.

Before you begin

Note: Ensure the current working directory has write permissions for the user running sqlplus. The output file will be spooled to the current working directory unless another directory is specified.

Procedure

  1. Run the following commands:
    SQL> Set verify off
    Set space 0
    Set line 120
    Set heading off
    Set feedback off
    Set pages 1000
    Spool analyze.sql
    
    Select 'Analyze cluster "'||cluster_name||'" validate structure cascade;'
    from dba_clusters 
    where owner='SYS'
    union
    Select 'Analyze table "'||table_name||'" validate structure cascade;'
    from dba_tables 
    where owner = 'SYS' and partitioned = 'NO' and (iot_type='IOT' or iot_type is NULL)
    union
    Select 'Analyze table "'||table_name||'" validate structure cascade into invalid_rows;'
    from dba_tables 
    where owner = 'SYS' and partitioned = 'YES';
    
    spool off
  2. Run utlvalid.sql and the script you just generated.

    In the following example, the generated script is called analyze.sql.

    You should not see any errors reported except for the ones listed below. You may or may not see a message that indicates a table was created.

    SQL> @$ORACLE_HOME/rdbms/admin/utlvalid.sql
    SQL> @analyze.sql
    SP2-0042: unknown command "SQL>" - rest of line ignored.
    SP2-0734: unknown command beginning "SQL> Selec..." - rest of line ignored.
    SP2-0042: unknown command "SQL>" - rest of line ignored.
    SP2-0734: unknown command beginning "SQL> spool..." - rest of line ignored.
    SQL>

Results

Oracle now has us check that all snapshot refreshes have completed and replication is stopped. Netcool/Proviso 4.4.3.3 does not use these features. If you have added any of these features, then please refer to Oracle Note: 837570.1.