Oracle 11g Health Monitor Checks

说明:
Health Monitor是11g引入的用于检查数据库的各个组件(包括文件、内存、事务处理完整性、
元数据和进程使用情况)。这些检查器将生成检查结果报表以及解决问题的建议。
可在数据库脱机(nomount)和联机(open或mount)的情况下执行,运行状况检查都可以在DB-online模式下运行。只有redo完整性检查和db结构完整性检查需要在数据库脱机模式下进行。


支持的检查条目:

SQL> select name,offline_capable,description,internal_check from v$hm_check;

NAME                                O DESCRIPTION                                                       I
----------------------------------- - ----------------------------------------------------------------- -
HM Test Check                       Y Check for health monitor functionality                            Y
DB Structure Integrity Check        Y Checks integrity of all database files                            N
CF Block Integrity Check            Y Checks integrity of a control file block                          N
Data Block Integrity Check          Y Checks integrity of a data file block                             N
Redo Integrity Check                Y Checks integrity of redo log content                              N
Logical Block Check                 N Checks logical content of a block                                 Y
Transaction Integrity Check         N Checks a transaction for corruptions                              N
Undo Segment Integrity Check        N Checks integrity of an undo segment                               N
No Mount CF Check                   Y Checks control file in NOMOUNT mode                               Y
Mount CF Check                      Y Checks control file in mount mode                                 Y
CF Member Check                     Y Checks a multiplexed copy of the control file                     Y
All Datafiles Check                 Y Checks all datafiles in the database                              Y
Single Datafile Check               Y Checks a data file                                                Y
Tablespace Check Check              Y Checks a tablespace                                               Y
Log Group Check                     Y Checks all members of a log group                                 Y
Log Group Member Check              Y Checks a particular member of a log group                         Y
Archived Log Check                  Y Checks an archived log                                            Y
Redo Revalidation Check             Y Checks redo log content                                           Y
IO Revalidation Check               Y Checks file accessibility                                         Y
Block IO Revalidation Check         Y Checks file accessibility                                         Y
Txn Revalidation Check              N Revalidate corrupted transaction                                  Y
Failure Simulation Check            Y Creates dummy failures                                            Y
Dictionary Integrity Check          N Checks dictionary integrity                                       N
ASM Mount Check                     Y Diagnose mount failure                                            Y
ASM Allocation Check                Y Diagnose allocation failure                                       N
ASM Disk Visibility Check           Y Diagnose add disk failure                                         Y
ASM File Busy Check                 Y Diagnose file drop failure                                        Y
ASM Toomanyoff Check                Y Diagnose mount failed because there were too many offline disks   Y
ASM Insufficient Disks Check        Y Diagnose mount failed because there were insufficient disks       Y
ASM Insufficient Mem Check          Y Check to adjust memory on allocation failure                      Y
30 rows selected.



健康检查的类型:

1.DB Structure Integrity Check—This check verifies the integrity of database files and reports failures if these files are inaccessible, corrupt or inconsistent. If the database is in mount or open mode, this check examines the log files and data files listed in the control file. If the database is in NOMOUNT mode, only the control file is checked.

--mount\open
模式检查控制文件中列出的日志文件和数据文件。NOMOUNT模式,则仅检查控制文件。

2.Data Block Integrity Check—This check detects disk image block corruptions such as checksum failures, head/tail mismatch, and logical inconsistencies within the block. Most corruptions can be repaired using Block Media Recovery. Corrupted block information is also captured in the V$DATABASE_BLOCK_CORRUPTION view. This check does not detect inter-block or inter-segment corruption.

--会捕获损坏的块信息记录在V$DATABASE_BLOCK_CORRUPTION视图中,不会检测块间或段间损坏。

3.Redo Integrity Check—This check scans the contents of the redo log for accessibility and corruption, as well as the archive logs, if available. The Redo Integrity Check reports failures such as archive log or redo corruption.

--在线日志及归档都会进行检查

4.Undo Segment Integrity Check—This check finds logical undo corruptions. After locating an undo corruption, this check uses PMON and SMON to try to recover the corrupted transaction. If this recovery fails, then Health Monitor stores information about the corruption in V$CORRUPT_XID_LIST. Most undo corruptions can be resolved by forcing a commit.

--PMON和SMON尝试恢复损坏的事务,当损坏的事务不能恢复时记录在V$CORRUPT_XID_LIST视图中。

5.Transaction Integrity Check—This check is identical to the Undo Segment Integrity Check except that it checks only one specific transaction.

--与4相同

6.Dictionary Integrity Check—This check examines the integrity of core dictionary objects, such as tab$ and col$. It performs the following operations:
1)Verifies the contents of dictionary entries for each dictionary object.
--验证每个字典对象的字典条目的内容。
2)Performs a cross-row level check, which verifies that logical constraints on rows in the dictionary are enforced.
--执行跨行级别检查,强制执行验证字典中行的逻辑约束。
3)Performs an object relationship check, which verifies that parent-child relationships between dictionary objects are enforced.
--执行对象关系检查,强制执行验证字典对象之间的父子关系。

涉及到的字典:

The Dictionary Integrity Check operates on the following dictionary objects:
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$, and ecol$.

手动运行健康检查

需要用到DBMS_HM.RUN_CHECK包:

https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_hm.htm#ARPLS144

DBMS_HM.RUN_CHECK (
   check_name     IN  VARCHAR2,
                  -->  要调用的检查的名称,从V$HM_CHECK和V$HM_CHECK_PARAM视图查看,SELECT name FROM V$HM_CHECK WHERE INTERNAL_CHECK = ‘N‘检索可由用户手动运行的检查列表  ;
   run_name       IN  VARCHAR2 := NULL,
                  -->运行检查的名称,可不指定。
   timeout        IN  NUMBER := NULL,
                  -->运行的最长时间(以秒为单位),可不指定。
   input_params   IN  VARCHAR2 := NULL);
                  -->由名称,值对组成,由特殊字符‘;‘分割。具体值通过v$hm_check_param ,v$hm_check视图确定。

1)运行DBMS_HM.RUN_CHECK

BEGIN
   DBMS_HM.RUN_CHECK(‘Dictionary Integrity Check‘, ‘Dict_Check‘);
 END;
 /

用法参考:https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_hm.htm#ARPLS66419

2)SQLPLUS中查看报告

SQL> SET LONG 100000
SQL> SET LONGCHUNKSIZE 1000
SQL> SET PAGESIZE 1000
SQL> SET LINESIZE 512
SQL> SELECT DBMS_HM.GET_RUN_REPORT(‘Dict_Check‘) FROM DUAL;

DBMS_HM.GET_RUN_REPORT(‘DICTCHECK‘)
---------------------------------------------------------
Basic Run Information
 Run Name                     : Dict Check
 Run Id                       : 55001
 Check Name                   : Dictionary Integrity Check
 Mode                         : MANUAL
 Status                       : COMPLETED
 Start Time                   : 2019-07-03 09:49:44.365864 +08:00
 End Time                     : 2019-07-03 09:50:04.668621 +08: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
v
Run Findings And Recommendations
 Finding
 Finding Name  : Dictionary Inconsistency
 Finding ID    : 55002
 Type          : FAILURE
 Status        : OPEN
 Priority      : CRITICAL
 Message       : SQL dictionary health check: analyzetime for object new than
               sysdate 12 on object TAB$ failed
 Message       : Damaged rowid is AAAAACAABAAAACRAAC - description: Object
               SYS.UNDO$ is referenced
 Finding
 Finding Name  : Dictionary Inconsistency
 Finding ID    : 55005
 Type          : FAILURE
 Status        : OPEN
 Priority      : CRITICAL
 Message       : SQL dictionary health check: analyzetime for object new than
               sysdate 12 on object TAB$ failed
 Message       : Damaged rowid is AAAAACAABAAAACVAAA - description: Object
               SYS.SEQ$ is referenced

3)adrci中查看报告

ADRCI: Release 11.2.0.4.0 - Production on Wed Jul 3 09:52:43 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/u01/app/oracle"
adrci> show hm_run

ADR Home = /u01/app/oracle/diag/tnslsnr/prodb/listener:
*************************************************************************
...
**********************************************************
HM RUN RECORD 130
**********************************************************
   RUN_ID                        56581
   RUN_NAME                      Dict_Check
   CHECK_NAME                    Dictionary Integrity Check
   NAME_ID                       24
   MODE                          0
   START_TIME                    2019-07-03 09:58:40.350313 +08:00
   RESUME_TIME                   <NULL>
   END_TIME                      2019-07-03 09:58:56.425829 +08:00
   MODIFIED_TIME                 2019-07-03 09:58:56.425829 +08:00
   TIMEOUT                       0
   FLAGS                         0
   STATUS                        5
   SRC_INCIDENT_ID               0
   NUM_INCIDENTS                 0
   ERR_NUMBER                    0
   REPORT_FILE                   <NULL>

adrci> create report hm_run Dict_Check
adrci> show report hm_run Dict_Check
...
adrci> show hm_run
**********************************************************
HM RUN RECORD 130
**********************************************************
   RUN_ID                        56581
   RUN_NAME                      Dict_Check
   CHECK_NAME                    Dictionary Integrity Check
   NAME_ID                       24
   MODE                          0
   START_TIME                    2019-07-03 09:58:40.350313 +08:00
   RESUME_TIME                   <NULL>
   END_TIME                      2019-07-03 09:58:56.425829 +08:00
   MODIFIED_TIME                 2019-07-03 09:59:40.845354 +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/PROD/PROD/hm/HMREPORT_Dict_Check.hm

   已生成REPORT_FILE,xml格式。

其他:

每个类型的检查参数可能会不一样,如数据块完整性检查:

begin
  DBMS_HM.RUN_CHECK(‘Data Block Integrity Check‘,
                    ‘f7_block_check‘,
                    input_params => ‘BLC_DF_NUM=7;BLC_BL_NUM=100‘);
end;
/

具体参数:

SELECT a.*
  FROM v$hm_check_param a, v$hm_check b
 WHERE a.check_id = b.id
   AND b.name = ‘Data Block Integrity Check‘;

原文地址:https://blog.51cto.com/hunt1574/2419966

时间: 2024-11-10 01:23:47

Oracle 11g Health Monitor Checks的相关文章

Oracle Cluster Health Monitor(CHM)简介

Oracle Cluster Health Monitor(CHM)简介 概述 Cluster Health Monitor(以下简称CHM)是一个Oracle提供的工具,用来自动收集操作系统的资源(CPU.内存.SWAP.进程.I/O以及网络等)的使用情况.CHM会每秒收集一次数据. 这些系统资源数据对于诊断集群系统的节点重启.Hang.实例驱逐(Eviction).性能问题等是非常有帮助的.另外,用户可以使用CHM来及早发现一些系统负载高.内存异常等问题,从而避免产生更严重的问题. CHM会

转 Oracle Cluster Health Monitor(CHM)简介

Cluster Health Monitor(以下简称CHM)是一个Oracle提供的工具,用来自动收集操作系统的资源(CPU.内存.SWAP.进程.I/O以及网络等)的使用情况.CHM会每秒收集一次数据.这些系统资源数据对于诊断集群系统的节点重启.Hang.实例驱逐(Eviction).性能问题等是非常有帮助的.另外,用户可以使用CHM来及早发现一些系统负载高.内存异常等问题,从而避免产生更严重的问题. CHM默认安装在以下版本: 11.2.0.2 及更高版本的 Oracle Grid Inf

Oracle 12c Cluster Health Monitor 详解

注:本文谢绝转载! 1  CHM 概述 Cluster HealthMonitor 会通过OS API来收集操作系统的统计信息,如内存,swap 空间使用率,进程,IO 使用率,网络等相关的数据. CHM 的信息收集是实时的,在11.2.0.3 之前是每1秒收集一次,在11.2.0.3 之后,改成每5秒收集一次数据,并保存在CHM 仓库中. 这个收集时间间隔不能手工修改. CHM 的目的也是为了在出现问题时,提供一个分析的依据,比如节点重启,hang,实例被驱逐,性能下降,这些问题都可以通过对C

健康监控器(Health Monitor)

健康监控器(Health Monitor)ORACLE 11G 中引入了免费的数据库健康监控器,通过DBMS_HM程序包来完成. 检查项目:1.DB结构完整性检查 2.数据块及完整性检查 3.中做日志完整性检查 4.Undo段完整性检查 5.事物完整性检查 6.数据字典完整性检查 SQL> select name,description from v$hm_check;NAME                           DESCRIPTION----------------------

Oracle 11g Articles

发现一个比较有意思的网站,http://www.oracle-base.com/articles/11g/articles-11g.php Oracle 11g Articles Oracle Database 11g: New Features For Administrators OCP Exam Articles Oracle Database 11g Release 1: Miscellaneous Articles Oracle Database 11g Release 2: Misc

初了解Oracle 11g的Automatic Diagnostic Repository新特性

Oracle 11g之前,当数据库出现问题时,往往第一时间需要看alert日志,看看里面记录了哪些错误,可以给我们提示.alert文件名则 是alert_<ORACLE_SID>.log,文件存储路径由参数background_dump_dest决定,例如: SQL> show parameter background_dump_dest NAME                                            TYPE         VALUE --------

[转]Installation of Oracle 11g Release 2 on Solaris 11 Express x86 and SPARC

在 Solaris 11上安装Oracle 11g 转自:http://ivan.kartik.sk/oracle/install_ora11gR2_solaris11.html Installation of Oracle 11g Release 2 on Solaris 11 Express x86 and SPARC This paper (HOWTO) describes step-by-step installation of Oracle 11g release 2 database

Oracle 11g ADRCI工具使用

Oracle 11g ADRCI工具使用 在Oracle中,各个组件(监听器.数据库实例.各种配置工具)在安装和运行时都会有相应的日志Log和跟踪文件Trace生成.Oracle 11g之前,这些信息都是零散的分布在Oracle组件目录中的.在11g,Oracle推出了ADR(Automatic Diagnostic Repository)的概念,将这些信息统一的列入到其中管理. 1.ADRCI初探 在11g中,提供了ADR_HOME目录,其中集中保存各类型的日志和跟踪信息. [[email p

Oracle 11g trace events

oracle的events,是我们在做自己的软件系统时可以借鉴的 Oracle 11g trace eventsORA-10001: control file crash event1ORA-10002: control file crash event2ORA-10003: control file crash event3ORA-10004: block recovery testing - internal errorORA-10005: trace latch operations fo