我不知道我已经遭遇多少次字典问题-从字典表的错误信息到锁定问题-所以我对字典完整性检查比较兴奋。字典完整性检查将检查字典的核心对象完整性,包括:tab$, clu$, fet$, uet$, seg$, undo$, ts$, file$, obj$, ind$, icol$, col$, user$, con$, cdef$, ccol$, bootstrap$, objauth$, ugroup$, tsq$, syn$, view$, typed_view$, superobj$, seq$, lob$, coltype$, subcoltype$, ntab$, refcon$, opqtype$, dependency$, access$, viewcon$, icoldep$, dual$, sysauth$, objpriv$, defrole$, 和 ecol$。这是我很关心的一个很好很长的列表,以及检查应该看看字典的条目内容,制约因素和参照完整性。
8 Y+ Q# i- x$ v( j v 通过手动运行字典完整性检查,我们需要分配下列DBMS_HM.RUN_CHECK PL/SQL软件包—给予该操作额外的名称。在这个例子中,我将命名我的操作为DICTIONARY_CHECK_11032008。8 f& ~1 F+ v; q, b# N& v0 J4 U
BEGIN: o6 o7 u0 B5 O& @: R& v7 G
DBMS_HM.RUN_CHECK('Dictionary Integrity Check',2 d( D' h) S, `4 M
'DICTIONARY_CHECK_11032008');
% k2 Y1 a; ?5 x2 A, T% m END;
7 Q1 _8 k! C+ ?& j /
; L9 P* |: ^5 w$ h/ u6 L 现在,这是它得到一些有趣的。DBMS_HM.RUN_CHECK在ADR存贮其相关信息,因此使用DBMS_HM PL/SQL软件包或ADRCI功能生成的报告。对我来说,当DBMS_HM PL/SQL软件包将以HTML , XML或文本格式输出报告时,我们已经没有多少选择。 因为ADRCI功能只以XML的形式输出报告 。然而,我们通过对比这两种方法能使我们看到ADR存在的不足以及知道ADR和DBMS_HM在什么地方功能有重叠。
+ {! o5 g: W" C3 I. m 由于DBMS_HM.RUN_CHECK将其信息存储在ADR中,我们可以很容易地看到HM_RUN ,通过输入下列ADRCI命令。
* |+ O6 W% x" N3 s$ J8 U! h adrci> show hm_run
% R0 J0 `$ j! M0 n) p; s# c ADR Home = /opt/app/oracle/diag/rdbms/db11fs/db11FS:# A/ B4 h- N! b) z$ g! @
HM RUN RECORD 3
7 r1 w7 k Z8 \3 A0 D' b; y RUN_ID 412 r- N) |! C$ L% k8 W4 w$ P$ f
RUN_NAME DICTIONARY_CHECK_11032008
- x. ~6 e" b" Y) f CHECK_NAME Dictionary Integrity Check
- C0 b6 G6 {7 b, y& S% j2 f NAME_ID 247 T p9 l6 G- F: |
MODE 0( O- o4 n1 v6 u" Y* J/ ^9 D
START_TIME 2008-11-03 18:32:10.819805 -07:00
0 E2 r) f4 @( c9 X RESUME_TIME
/ j% u% G3 H8 \6 r$ [ END_TIME 2008-11-03 18:32:18.827387 -07:00
6 w# l5 [8 u9 G7 S/ y MODIFIED_TIME 2008-11-03 18:32:18.827387 -07:00
3 I9 U3 p7 Y3 o( W TIMEOUT 0
3 D. g" P0 n5 [- m$ } FLAGS 0" ]) w9 m0 n' c8 f1 }: c
STATUS 54 \* x0 Y, P) Y- J4 R
SRC_INCIDENT_ID 0
9 e8 l1 i) ]2 Z$ @& y NUM_INCIDENTS 0
8 z* d- b) ^) B' ] r ERR_NUMBER 0
5 w1 S( L; o% @; j) ` REPORT_FILE
; W& c) g7 T: c! e8 A 这最显著的信息,或缺失信息,是REPORT_FILE为 。此栏只有当报告生成时才能被填充。建立一个报告可以通过DBMS_HM包或通过ADRCI的 CREATE REPORT命令。 |