Oracle 11g Health Monitor Checks

Description:
Health Monitor is 11g introduced the various components used to check the database (including file, memory, transactional integrity,
metadata and processes usage). These checks will generate test results report and the recommendations to solve the problem.
It may be performed in an offline database (nomount) and online situation (open or mount), the health check can be run in a DB-online mode. Only redo and db structural integrity checking integrity checks in the database needs to be offline mode. Support check entry:


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.



Health check type:

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
log files and data files mode control checks listed in the file. NOMOUNT mode, it only checks the control file.

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.

- captures damaged block information is recorded in the V $ DATABASE_BLOCK_CORRUPTION view is not detected between the damaged block, or segment.

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.

- Online and archive log will be checked

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 and SMON to try to recover corrupted transaction, recorded in the V $ CORRUPT_XID_LIST view when corrupted transaction can not be restored.

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

- with the same 4

. 6.Dictionary the Integrity Check This Examines the Check-Integrity The Dictionary of Core Objects, SUCH AS Tab $ and $ COL It Performs The following Operations:
. 1) Contents of Verifies The Dictionary Object Dictionary entries It for each.
- verify each dictionary object the contents of the dictionary entries.
2) Performs A Row-Level Cross Check, Which Verifies that ON Logical Constraints The Dictionary rows are enforced is in.
- Executive Level interbank check constraint enforcement logic verification dictionary rows.
. 3) Relationship Object Check Performs AN, Which Verifies that parent-Child Relationships BETWEEN Dictionary Objects are enforced is.
- perform inspection object relation, the parent-child relationship to enforce authentication dictionary.

Related to the dictionary:

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$.

Manually run a health check

Need to use DBMS_HM.RUN_CHECK package:

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) Run DBMS_HM.RUN_CHECK

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

Usage Reference: https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_hm.htm#ARPLS66419

2) SQLPLUS View report

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 view report

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格式。

other:

Each type of inspection parameters may be different, such as the integrity check data block:

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

Specific parameters:

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';

Guess you like

Origin blog.51cto.com/hunt1574/2419966