zoukankan      html  css  js  c++  java
  • 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
    

      

     
  • 相关阅读:
    luogu P3376 【模板】网络最大流
    cogs 774. [USACO Open09] 捉迷藏
    1002. A+B for Polynomials (25) (浮点数判0)
    1001. A+B Format (20) (%0nd)
    7-28 搜索树判断(25 分)
    7-27 家谱处理(30 分)
    7-26 Windows消息队列(25 分)(堆排序)
    7-25 朋友圈(25 分)(并查集)
    7-24 树种统计(25 分)(二叉排序的应用)
    7-23 还原二叉树(25 分)
  • 原文地址:https://www.cnblogs.com/cqdba/p/11383415.html
Copyright © 2011-2022 走看看