大佬教程收集整理的这篇文章主要介绍了Oracle健康监控及健康检查(Health Monitor),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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 @R_650_4895@
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$。它执行以下操作:
验证每个字典对象的字典条目的内容。
执行跨行级别检查,该检查验证字典中行的逻辑约束是否被强制执行。
执行对象关系检查,该检查验证字典对象之间的父子关系是否被强制执行。
反应式
故障诊断基础架构可以自动运行健康检查以响应严重错误。
手动式
可以使用DBMS_HM pl/sql软件包或Enterprise Manager界面手动运行健康状况检查。也可以根据需要定期运行检查程序
健康监视器在自动诊断存储库(ADR)中检查存储结果,建议和其他信息。
DB-online(即在OPEN模式下)
健康检查可以在数据库打开时运行(或称联机模式)。
DB-offline(数据库脱机)
健康检查可以在实例可用并且数据库本身关闭时运行(NOMOUNT模式)。
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
@H_571_404@2、使用OEM实施检查
实施检查
查看报告
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信息
以上是大佬教程为你收集整理的Oracle健康监控及健康检查(Health Monitor)全部内容,希望文章能够帮你解决Oracle健康监控及健康检查(Health Monitor)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。