首页 资讯 Oracle健康监控及健康检查(Health Monitor)

Oracle健康监控及健康检查(Health Monitor)

来源:泰然健康网 时间:2024年11月27日 23:38

一、Oracle健康监控及健康检查

Oracle数据库包括一个名为Health Monitor的框架,用于运行诊断检查数据库的各种组件。Oracle健康监视器检查各种组件数据库,包括文件,内存,事务完整性,元数据和进程使用。在检查器运行后,它生成一个包含有关检查器发现的信息的报告,包括优先事项(低,高或关键),调查结果及其后果的描述,和关于执行的基本统计。 Health Monitor使用XML生成报表并存储ADR报告。可以使用V$ HM_RUN,DBMS_HM,ADRCI或企业管理器查看相应的调查结果报告以及解决问题的建议。

下图为健康监控组件框架

二、检查的具体组件及描述

SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production SQL> select 'Leshami' Author,'http://blog.csdn.net/leshami' Blog, 2 '645746311' QQ from dual; AUTHOR BLOG QQ ------- ---------------------------- --------- Leshami http://blog.csdn.net/leshami 645746311 SQL> SELECT name,internal_check,offline_capable,description FROM v$hm_check; NAME I O DESCRIPTION -------------------------------- - - ----------------------------------------------------------------- HM Test Check Y Y Check for health monitor functionality DB Structure Integrity Check N Y Checks integrity of all database files CF Block Integrity Check N Y Checks integrity of a control file block Data Block Integrity Check N Y Checks integrity of a data file block Redo Integrity Check N Y Checks integrity of redo log content Logical Block Check Y N Checks logical content of a block Transaction Integrity Check N N Checks a transaction for corruptions Undo Segment Integrity Check N N Checks integrity of an undo segment No Mount CF Check Y Y Checks control file in NOMOUNT mode Mount CF Check Y Y Checks control file in mount mode CF Member Check Y Y Checks a multiplexed copy of the control file All Datafiles Check Y Y Checks all datafiles in the database Single Datafile Check Y Y Checks a data file Tablespace Check Check Y Y Checks a tablespace Log Group Check Y Y Checks all members of a log group Log Group Member Check Y Y Checks a particular member of a log group Archived Log Check Y Y Checks an archived log Redo Revalidation Check Y Y Checks redo log content IO Revalidation Check Y Y Checks file accessibility Block IO Revalidation Check Y Y Checks file accessibility Txn Revalidation Check Y N Revalidate corrupted transaction Failure Simulation Check Y Y Creates dummy failures Dictionary Integrity Check N N Checks dictionary integrity ASM Mount Check Y Y Diagnose mount failure ASM Allocation Check N Y Diagnose allocation failure ASM Disk Visibility Check Y Y Diagnose add disk failure ASM File Busy Check Y Y Diagnose file drop failure ASM Toomanyoff Check Y Y Diagnose mount failed because there were too many offline disks ASM Insufficient Disks Check Y Y Diagnose mount failed because there were insufficient disks

以下列出一些重要检查描述

数据库结构完整性检查(DB Structure Integrity Check)

  此检查将验证数据库文件的完整性,如文件无法访问,损坏或不一致,并报告这些故障。如果数据库处于挂载或打开模式,则此检查将检查控制文件中列出的日志文件和数据文件。如果数据库处于NOMOUNT模式,则仅检查控制文件。

数据块完整性检查(Data Block Integrity Check)
  此检查检测磁盘映像块损坏,如校验和异常,头/尾不匹配和块内的逻辑不一致。大多数损坏可以使用块介质恢复进行修复。还会在V$DATABASE_BLOCK_CORRUPTION视图中捕获损坏的块信息。此检查不会检测到块间或段间损坏。

重做完整性检查(Redo Integrity Check)
  此检查扫描重做日志的内容以获取可访问性和损坏以及归档日志(如果可用)。重做完整性检查报告如归档日志或重做损坏故障。

撤消段完整性检查(Undo Segment Integrity Check)
  此检查发现逻辑撤销损坏。找到撤销损坏后,此检查使用PMON和SMON尝试恢复损坏的事务。如果此恢复失败,则Health Monitor将存储有关损坏的信息V$CORRUPT_XID_LIST。大多数撤销损坏可以通过强制提交来解决。

事务完整性检查(Transaction Integrity Check)
  此检查与撤消段完整性检查相同,只是它仅检查一个特定事务。

字典完整性检查(Dictionary Integrity Check)
  此检查检查核心字典对象的完整性,如tab$和col$。它执行以下操作:

    验证每个字典对象的字典条目的内容。
    执行跨行级别检查,该检查验证字典中行的逻辑约束是否被强制执行。
    执行对象关系检查,该检查验证字典对象之间的父子关系是否被强制执行。

三、健康检查支持的模式及运行方式

1、支持模式

反应式
  故障诊断基础架构可以自动运行健康检查以响应严重错误。

手动式
  可以使用DBMS_HM PL/SQL软件包或Enterprise Manager界面手动运行健康状况检查。也可以根据需要定期运行检查程序

健康监视器在自动诊断存储库(ADR)中检查存储结果,建议和其他信息。

2、运行方式

DB-online(即在OPEN模式下)
健康检查可以在数据库打开时运行(或称联机模式)。

DB-offline(数据库脱机)
健康检查可以在实例可用并且数据库本身关闭时运行(NOMOUNT模式)。

四、演示健康健康检查

1、使用DBMS_HM PL / SQL包实施检查

DBMS_HM包主要包括2个存储过程,一个是RUN_CHECK,主要用于实施健康检查,支持参数输入;一个是GET_RUN_REPORT,用于获取健康检查的结果。
以下为支持的相关参数列表

SQL> SELECT c.name check_name, p.name parameter_name, p.type, 2 p.default_value, p.description 3 FROM v$hm_check_param p, v$hm_check c 4 WHERE p.check_id = c.id and c.internal_check = 'N' 5 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 --演示实施健康检查 RMAN> backup database plus archivelog; --先备份 SQL> select file#,name from v$datafile where name like '%user%'; FILE# NAME ---------- ------------------------------------------------------------ 4 /app/oracle/ora11g/oradata/ora11g/users01.dbf $ cat /dev/null>/app/oracle/ora11g/oradata/ora11g/users01.dbf SQL> alter system flush buffer_cache; System altered. SQL> select count(*) from scott.emp; select count(*) from scott.emp * ERROR at line 1: ORA-01115: IO error reading block from file (block # ) ORA-01110: data file 4: '/app/oracle/ora11g/oradata/ora11g/users01.dbf' ORA-27072: File I/O error Additional information: 4 Additional information: 155 SQL> BEGIN 2 DBMS_HM.RUN_CHECK (check_name => 'DB Structure Integrity Check', 3 run_name => 'my_db_strc_check'); 4 END; 5 / PL/SQL procedure successfully completed. --查看报告 SET LONG 100000 SET LONGCHUNKSIZE 1000 SET PAGESIZE 1000 SET LINESIZE 512 SELECT DBMS_HM.GET_RUN_REPORT('my_db_strc_check') FROM DUAL; DBMS_HM.GET_RUN_REPORT('MY_DB_STRC_CHECK') -------------------------------------------------------------- Basic Run Information Run Name : my_db_strc_check Run Id : 107795 Check Name : DB Structure Integrity Check Mode : MANUAL Status : COMPLETED Start Time : 2017-07-03 17:13:49.550575 +08:00 End Time : 2017-07-03 17:13:50.202535 +08:00 Error Encountered : 0 Source Incident Id : 0 Number of Incidents Created : 0 Input Paramters for the Run Run Findings And Recommendations Finding Finding Name : Corrupt Datafile --找到损坏的数据文件 Finding ID : 107799 Type : FAILURE --类型为失败 Status : OPEN --状态为OPEN Priority : HIGH --级别为高 Message : Datafile 4: '/app/oracle/ora11g/oradata/ora11g/users01.dbf'is corrupt Message : Some objects in tablespace USERS might be unavailable

2、使用OEM实施检查

实施检查

查看报告

3、通过ADRCI接口查看报告

adrci>
adrci> show hm_run –列出所有检查运行过的健康监控(可查询V$HM_RUN视图获取)
adrci> create report hm_run run_name –创建报告
adrci> show report hm_run run_name –查看报告

五、相关视图

V$HM_CHECK –所有能够被check的组件
V$HM_CHECK_PARAM –check组件可传递的相关参数
V$HM_RUN –所有健康健康检查相关信息及其状态
V$HM_FINDING –相关检查成果
V$HM_RECOMMENDATION –相关检查建议
V$HM_INFO –关于健康检查runs, findings, and recommendations信息

相关知识

职业健康检查种类及目
健康教育对农村地区孕妇产前保健知识的影响
职业健康检查的种类及目的
健康检查动起来
健康科技探索未来
如何正确判断和监测心率的变化与健康状况
健康监测∶体检∶疾病筛查
儿童健康检查及评价的标准
职业健康检查包括()。A.上岗前的健康检查B.在岗期间的健康检查C.应急检查D.离岗时的健康检查E.职
职业健康检查及其体检结论.doc

网址: Oracle健康监控及健康检查(Health Monitor) https://www.trfsz.com/newsview139831.html

推荐资讯