使用DBMS_HM包
SET LONG 100000 SET LONGCHUNKSIZE 1000 SET PAGESIZE 1000 SET LINESIZE 512 SELECT DBMS_HM.GET_RUN_REPORT('DICTIONARY_CHECK_11032008') FROM DUAL; |
使用ADRCI CREATE REPORT命令
CREATE REPORT hm_run DICTIONARY_CHECK_11032008 When using the DBMS_HM package the output looks like: 当使用DBMS_HM包时输出结果如下: DBMS_HM.GET_RUN_REPORT('DICTIONARY_CHECK_11032008') ------------------------------------------------------------------ Basic Run Information Run Name : DICTIONARY_CHECK_11032008 Run Id : 41 Check Name : Dictionary Integrity Check Mode : MANUAL Status : COMPLETED Start Time : 2008-11-03 18:32:10.819805 -07:00 End Time : 2008-11-03 18:32:18.827387 -07: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 : 42 Type : FAILURE Status : OPEN Priority : CRITICAL Message : SQL dictionary health check: file$ pk 42 on object FILE$ failed Message : Damaged rowid is AAAAARAABAAAAByAAF - description: No further damage description available Finding Finding Name : Dictionary Inconsistency Finding ID : 45 Type : FAILURE Status : OPEN Priority : CRITICAL Message : SQL dictionary health check: dependency$.dobj# fk 126 on object DEPENDENCY$ failed Message : Damaged rowid is AAAABnAABAAAOiHABI - description: No further damage description available Finding Finding Name : Dictionary Inconsistency Finding ID : 48 Type : FAILURE Status : OPEN Priority : CRITICAL Message : SQL dictionary health check: dependency$.dobj# fk 126 on object DEPENDENCY$ failed Message : Damaged rowid is AAAABnAABAAAQXqAA6 - description: No further damage description available |
运行后DBMS_HM包或ADRCI 的CREATE REPORT命令后,我们可以重新输入ADRCI显示hm_run命令,现在可以看到REPORT_FILE信息被填充了。
REPORT_FILE /opt/app/oracle/diag/rdbms/db11fs/db11FS/hm/HMREPORT_DICTIONARY_CHECK_11032008.hm
当使用ADRCI功能,你必须先运行生成报告文件的命令,如果该文件不存在,那么运行另一个命令,以显示其内容。你还可以查看该报告通过ADRCI输入以下命令。因为输出的结果在XML文档中,因此它不会在这里显示。
show report hm_run DICTIONARY_CHECK_11032008
不管用什么方法,这些检查结果对调查Oracle数据库的损坏将是一个重要的信息。虽然我还没有进行任何详细的测试,包括时机,锁定,或性能等问题,对此应该谨慎使用。任何时候执行损坏检查,必须有某种形式的对象锁定。这将只需要时间来观看这些程序在一个数据库上操作的步骤和实际效果。其实我知道事情会是怎样,如果你有问题,你不希望找到他们吗?这对DBA来说只不过是另一个值得骄傲的成就。