11g health monitor新特性,DBMS_HM.RUN_CHECK一例
BEGIN DBMS_HM.RUN_CHECK('Dictionary Integrity Check', 'my_run'); END; /
检查结果
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_check结构:
PROCEDURE RUN_CHECK Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- CHECK_NAME VARCHAR2 IN RUN_NAME VARCHAR2 IN DEFAULT TIMEOUT NUMBER IN DEFAULT INPUT_PARAMS VARCHAR2 IN DEFAULT
check_name:数据库检查名,这是一个强制参数必须被指定。可以在视图
v$hm_check
中的name自动查询到该参数的值。12.1共34个值。
run_name:可选参数,指定一个检查名。
timeout:可选参数,可以设置老化时间。
params:输入参数,用于控制检查的执行。
SQL> select name from v$hm_check where name like '%Block%'; NAME ---------------------------------------------------------------- CF Block Integrity Check Data Block Integrity Check Logical Block Check Block IO Revalidation Check SQL> exec DBMS_HM.RUN_CHECK('Data Block Integrity Check', 'my_run2'); BEGIN DBMS_HM.RUN_CHECK('Data Block Integrity Check', 'my_run2'); END; * ERROR at line 1: ORA-48615: Parameter [BLC_DF_NUM] value not specified ORA-06512: at "SYS.DBMS_HM", line 191 ORA-06512: at line 1
看到有Data Block Integrity Check检查,赶紧试了一下,结果发现一次只能检查一个block,很不方便,还是 validate database 吧。