Oracle Dictionary Integrity Health Check
Hi,
It is good to check the integrity or health of a system to avoid future problems.
DBMS_HM.RUN_CHECK(‘Dictionary Integrity Check’, ‘my_run’);
SET LONG 100000
SET LONGCHUNKSIZE 1000
SET PAGESIZE 1000
SET LINESIZE 512
SELECT DBMS_HM.GET_RUN_REPORT(‘MY_RUN’) from dual;
SQL> SELECT DBMS_HM.GET_RUN_REPORT(‘MY_RUN’) from dual;
DBMS_HM.GET_RUN_REPORT(‘MY_RUN’)
——————————————————————————-
——————————————————————————-
——————————————————————————-
——————————————————————————-
Basic Run Information
Run Name : my_run
Run Id : 141
Check Name : Dictionary Integrity Check
Mode : MANUAL
Status : COMPLETED
Start Time : 2013-02-10 13:46:11.861572 +00:00
End Time : 2013-02-10 13:50:43.713326 +00:00
Error Encountered : 0
Source Incident Id : 0
Number of Incidents Created : 0
Input Paramters for the Run
TABLE_NAME=ALL_CORE_TABLES
CHECK_MASK=ALL
Run Findings And Recommendations
Finding
Finding Name : Dictionary Inconsistency
Finding ID : 142
Type : FAILURE
Status : OPEN
Priority : CRITICAL
Message : SQL dictionary health check: file$ pk 42 on object FILE$
failed
Message : Damaged rowid is AAAAARAABAAAADpAAC – description: Filename
/home/oracle/app/oracle/oradata/orcl/pdbseed/system01.dbf is
referenced
Crikey – lots of output – but what does it all mean?
Alternatively…
SQL> SELECT AVG(dbms_utility.get_hash_value(text,1000000000,power(2,30))) FROM DBA_SOURCE WHERE OWNER=’SYS’;
AVG(DBMS_UTILITY.GET_HASH_VALUE(TEXT,1000000000,POWER(2,30)))
————————————————————-
1564889684
Ahh my dictionary is same as before…cool
SQL> select banner from v$version;
BANNER
——————————————————————————–
Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 – 64bit Beta
PL/SQL Release 12.1.0.0.2 – Beta
CORE 12.1.0.0.2 Beta
TNS for Linux: Version 12.1.0.0.2 – Beta
NLSRTL Version 12.1.0.0.2 – Beta
Cheers,
Paul

