技术开发 频道

如何对Oracle进行健康检查

  使用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来说只不过是另一个值得骄傲的成就。

0
相关文章