• ORACLE Health Monitor简介


    1. Health Monitor简介
        Health Monitor是11g里新增加的特性,用于数据库的各层和各个组建的诊断检查。例如可以检查:文件损坏、物理逻辑块损坏、redo和undo故障、数据字典损坏等。HM可以根据检查的结果产生一个报表,并提供解决问题的建议。
       1.1 运行方式:
        1). Reactive
             Fault diagnosability infrastructure能自动响应严重的错误(critical error)。
         2). Manually
             可以通过DBMS_HM系统包或 Enterprise Manager来手工运行HM。

        1.2 运行模式
          1). DB-ONLINE
          2). DB-OFFLINE
          所有HM都能在online模式下运行,只有Redo Integrity Check 和 DB Structure Integrity Check能在offline模式下运行。
        
    2. HM的类型

        也可以通过视图来查询:

    SYS@PROD1>SELECT name ,DESCRIPTION FROM v$hm_check WHERE internal_check='N';              --internal_check='N' 可以手动检查的项目
    ​
    NAME                                                             DESCRIPTION
    ---------------------------------------------------------------- --------------------------------------------------
    DB Structure Integrity Check                                     Checks integrity of all database files
    CF Block Integrity Check                                         Checks integrity of a control file block
    Data Block Integrity Check                                       Checks integrity of a data file block
    Redo Integrity Check                                             Checks integrity of redo log content
    Transaction Integrity Check                                      Checks a transaction for corruptions
    Undo Segment Integrity Check                                     Checks integrity of an undo segment
    Dictionary Integrity Check                                       Checks dictionary integrity
    ASM Allocation Check                                             Diagnose allocation failure
    ​
    8 rows selected.
    

      

     

    3. 手工运行HM
       3.1 通过DBMS_HM系统包
         例如检查字典完整性检查:

    BEGIN
      DBMS_HM.RUN_CHECK(CHECK_NAME=>'Dictionary Integrity Check',RUN_NAME=>'my_run5');
    END;
    /
    

      

         该程序允许有输入参数,可以通过如下方式查找:

    set linesize 200
    set pagesize 200
    col check_name for a50
    col parameter_name for a20 
    col type for a20 
    col default_value for a20 
    col description for a50 
    SELECT c.name check_name, p.name parameter_name, p.type,p.default_value, p.description
                       FROM v$hm_check_param p, v$hm_check c
                       WHERE p.check_id = c.id and c.internal_check = 'N'
                       ORDER BY c.name;  
    ​
    CHECK_NAME                                         PARAMETER_NAME       TYPE                 DEFAULT_VALUE        DESCRIPTION
    -------------------------------------------------- -------------------- -------------------- -------------------- --------------------------------------------------
    ASM Allocation Check                               ASM_DISK_GRP_NAME    DBKH_PARAM_TEXT                           ASM group name
    CF Block Integrity Check                           CF_BL_NUM            DBKH_PARAM_UB4                            Control file block number
    Data Block Integrity Check                         BLC_DF_NUM           DBKH_PARAM_UB4                            File number
    Data Block Integrity Check                         BLC_BL_NUM           DBKH_PARAM_UB4                            Block number
    Dictionary Integrity Check                         CHECK_MASK           DBKH_PARAM_TEXT      ALL                  Check mask
    Dictionary Integrity Check                         TABLE_NAME           DBKH_PARAM_TEXT      ALL_CORE_TABLES      Table name
    Redo Integrity Check                               SCN_TEXT             DBKH_PARAM_TEXT      0                    SCN of the latest good redo (if known)
    Transaction Integrity Check                        TXN_ID               DBKH_PARAM_TEXT                           Transaction ID
    Undo Segment Integrity Check                       USN_NUMBER           DBKH_PARAM_TEXT                           Undo segment number
    ​
    9 rows selected.
    

      

     

          带参数实例:

    BEGIN
     DBMS_HM.RUN_CHECK (check_name => 'Transaction Integrity Check',run_name => 'my_run1', input_params => 'TXN_ID=7.33.2');
     DBMS_HM.RUN_CHECK(CHECK_NAME=>'Data Block Integrity Check',RUN_NAME=>'my_run2',TIMEOUT=>null,INPUT_PARAMS=>'BLC_DF_NUM = 5; BLC_BL_NUM = 203');
    ​
    END;
    

      

        3.2 通过OEM允许

    Advisor Central -》Checkers -》 Run
    

      

    4. 查看HM报表
       4.1 通过DBMS_HM系统包
         实例:

    SET LONG 100000
    SET LONGCHUNKSIZE 1000
    SET PAGESIZE 1000
    SET LINESIZE 512
    SELECT DBMS_HM.GET_RUN_REPORT('my_run3')  FROM    DUAL;
    ​
    DBMS_HM.GET_RUN_REPORT('MY_RUN3')
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Basic Run Information
     Run Name                     : my_run3
     Run Id                       : 381
     Check Name                   : Data Block Integrity Check
     Mode                         : MANUAL
     Status                       : COMPLETED
     Start Time                   : 2019-08-20 15:26:50.517521 +08:00
     End Time                     : 2019-08-20 15:26:50.964425 +08:00
     Error Encountered            : 0
     Source Incident Id           : 0
     Number of Incidents Created  : 0
    ​
    Input Paramters for the Run
     BLC_DF_NUM=1
     BLC_BL_NUM=23456
    ​
    Run Findings And Recommendations
     

        4.2 通过ADRCI查看
        adrci> show hm_run

    adrci> show hm_run
    ​
    ADR Home = /u01/app/oracle/diag/clients/user_oracle/host_3987733264_80:
    *************************************************************************
    0 rows fetched
    <ADR_RELATION name="">
    <ADR_HOME name="/u01/app/oracle/diag/clients/user_oracle/host_3987733264_80">
    ​
    ADR Home = /u01/app/oracle/diag/clients/user_oracle/host_772309917_80:
    *************************************************************************
    0 rows fetched
    </ADR_HOME>
    <ADR_HOME name="/u01/app/oracle/diag/clients/user_oracle/host_772309917_80">
    ​
    ADR Home = /u01/app/oracle/diag/rdbms/prod1/PROD1:
    *************************************************************************
    ​
    **********************************************************
    HM RUN RECORD 4
    **********************************************************
       RUN_ID                        381
       RUN_NAME                      my_run3
       CHECK_NAME                    Data Block Integrity Check
       NAME_ID                       3
       MODE                          0
       START_TIME                    2019-08-20 15:26:50.517521 +08:00
       RESUME_TIME                   <NULL>
       END_TIME                      2019-08-20 15:26:50.964425 +08:00
       MODIFIED_TIME                 2019-08-20 15:30:51.962982 +08:00
       TIMEOUT                       0
       FLAGS                         0
       STATUS                        5
       SRC_INCIDENT_ID               0
       NUM_INCIDENTS                 0
       ERR_NUMBER                    0
       REPORT_FILE                   /u01/app/oracle/diag/rdbms/prod1/PROD1/hm/HMREPORT_my_run3.hm
    

      

     

       4.3 通过OEM
              

    Advisor Central -》Checkers-》Runs -》View Report
    


    5. HM视图
        除了可以创建一个checker报表外,还可以在ADR里直接查看已经产生的报表。可查看的视图有:
       V$HM_RUN,V$HM_FINDING, and V$HM_RECOMMENDATION.
         例如:

    SYS@PROD1>SELECT run_id, name, check_name, run_mode, src_incident FROM v$hm_run;
    ​
        RUN_ID NAME                             CHECK_NAME                                         RUN_MODE SRC_INCIDENT
    ---------- -------------------------------- -------------------------------------------------- -------- ------------
           301 my_run1                          Data Block Integrity Check                         MANUAL                 0
           361 my_run2                          Data Block Integrity Check                         MANUAL                 0
           381 my_run3                          Data Block Integrity Check                         MANUAL                 0
           401 my_run5                          Dictionary Integrity Check                         MANUAL                 0
           241 my_run                           Dictionary Integrity Check                         MANUAL                 0
    

     

     
    SYS@PROD1> SELECT type, description FROM v$hm_finding WHERE run_id =381;
    ​
    TYPE          DESCRIPTION
    ------------- -----------------------------------------
    FAILURE       Block 64349 in datafile 1: '/u01/app/oracle/oradata/PROD1/system01.dbf ' is media corrupt
    FAILURE       Block 64351 in datafile 1: '/u01/app/oracle/oradata/PROD1/system01.dbf ' is media corrupt
    

      

     
  • 相关阅读:
    javascript:让表单 文本框 只读,不可编辑的方法
    javascript从url中获取请求参数
    jQuery 效果函数,jquery文档操作,jQuery属性操作方法,jQuerycss操作函数,jQuery参考手册-事件,jQuery选择器
    IIS中添加MIME类型
    谷歌工作方法流程相关4本书
    发财、升职带来的幸福感很快会消失,量化研究幸福的5+3本书
    棉纺织品的历史就是工业革命和资本主义的历史:5星|《棉花帝国:一部资本主义全球史》(上)
    (严重剧透)被川岛芳子包养的民国老军医:3.5星|麦家《人生海海》
    3星|《医疗创业与投资启示录》:相关资料汇编
    3星|秦朔《文明寻思录第三辑》:时事点评文集,观点多事实少
  • 原文地址:https://www.cnblogs.com/cqdba/p/11383415.html
Copyright © 2020-2023  润新知