Oracle 自动故障诊断
一、故障自动诊断概述Oracle故障诊断有助于预防,检测,诊断和解决问题。特别针对的问题是诸如由代码错误,元数据损坏和客户数据损坏引起的重大错误。 当数据库发生严重错误时,Oracle为其分配一个事件号码,立即捕获并标记该错误的诊断数据(如跟踪文件)。然后将数据存储在数据库外部的自动诊断存储库(ADR,一个基于文件的存储库中),随后可以通过事件编号检索数据并对其进行分析。 二、故障自动诊断的目标
三、故障自动诊断使用到的关键技术
四、自动故障诊断的核心组件 1、自动诊断存储库(ADR)ADR是对数据库诊断进行诊断,将其诊断结果以文件形式保存的的存储仓库,如跟踪,事件转储包,警报日志,健康监视器报告,核心转储等。它有一个统一的目录结构,可跨多个实例和多个产品,存储在任何数据库外部。因此,即使数据库关闭,已产生的诊断文件可用于问题诊断。从Oracle Database 11g R1开始,数据库,自动存储管理(ASM),集群就绪服务(CRS)和其他Oracle产品或组件存储所有诊断数据到ADR。每个产品的每个实例存储其自身ADR家目录下的诊断数据目录。例如,在具有共享存储和ASM的Real Application Clusters环境中,每个数据库实例和每个ASM实例在ADR内都有一个主目录。 ADR统一的目录结构,跨产品和实例的一致的诊断数据格式,以及统一的工具集使客户和Oracle支持人员能够跨多个实例关联和分析诊断数据。ADR根目录被称为ADR基础目录。它的位置由DIAGNOSTIC_DEST设置初始化参数。如果此参数被省略或保留为null,则数据库将按如下方式设置DIAGNOSTIC_DEST:如果环境变量ORACLE_BASE已设置,DIAGNOSTIC_DEST设置为$ORACLE_BASE。如果环境变量ORACLE_BASE未设置,DIAGNOSTIC_DEST设置为$ORACLE_HOME/log。 注意: 下图为自动诊断存储仓库图,展示了ADR概览及相关路径 SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
SQL> show parameter diag; --查看ADR基目录
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest string /app/oracle/ora11g
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 * from v$diag_info; --查看完整的ADR相关路径
INST_ID NAME VALUE
---------- ---------------------- ----------------------------------------------------------------------
1 Diag Enabled TRUE
1 ADR Base /app/oracle/ora11g
1 ADR Home /app/oracle/ora11g/diag/rdbms/ora11g/ora11g
1 Diag Trace /app/oracle/ora11g/diag/rdbms/ora11g/ora11g/trace
1 Diag Alert /app/oracle/ora11g/diag/rdbms/ora11g/ora11g/alert
1 Diag Incident /app/oracle/ora11g/diag/rdbms/ora11g/ora11g/incident
1 Diag Cdump /app/oracle/ora11g/diag/rdbms/ora11g/ora11g/cdump
1 Health Monitor /app/oracle/ora11g/diag/rdbms/ora11g/ora11g/hm
1 Default Trace File /app/oracle/ora11g/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_13535.trc
1 Active Problem Count 1
1 Active Incident Count 5
2、警报日志警报日志是一个XML文件,它是按时间顺序写出数据库消息和错误的日志文件。它存储在ADR中,并包含有关以下内容的消息: 3、跟踪文件,转储和核心文件跟踪文件,转储和核心文件包含用于调查问题的诊断数据。它们存储在ADR中。 每个服务器和后台进程都可以写入相关的跟踪文件。跟踪文件在整个过程的周期内定期更新,并且可以包含有关进程环境,状态,活动和错误的信息。此外,当进程检测到严重错误时,它会将有关该错误的信息写入其跟踪文件。SQL跟踪工具还创建跟踪文件,它们提供有关各个SQL语句的性能信息。您可以为会话或实例启用SQL跟踪。 跟踪文件名依赖于平台。通常,数据库后台进程跟踪文件名包含Oracle SID,后台进程名称和操作系统进程号,而服务器进程跟踪文件名包含Oracle SID,字符串“ora”和操作系统进程号。文件扩展名是.trc。服务器进程跟踪文件名的示例是orcl_ora_344.trc。跟踪文件有时伴随相应的trace map(.trm)文件,其中包含有关跟踪文件的结构信息,用于搜索和导航。 4、其他ADR内容ADR还包含运行状况监视器报告,数据修复记录,SQL测试用例,事件包等。 5、企业管理器工作台企业管理器支持工作台(Support Workbench)是一种使您能够在易于使用的图形界面进行调查,报告和在某些情况下修复问题(严重错误)的工具。支持工作台提供了一种自助服务方式,您可以在最短的时间内收集第一故障诊断数据,获取支持请求号码并将诊断数据上传到Oracle支持,从而减少解决问题的时间。支持工作台还建议并轻松访问Oracle顾问,以帮助您修复与SQL相关的问题,数据损坏问题等 6、ADRCI命令行实用程序ADR命令解释器(ADRCI)是一个实用程序,可以在命令行环境中调查问题,查看运行状况检查报告和打包第一故障诊断数据。然后,您可以将包上传到Oracle支持。ADRCI还使您能够查看ADR中跟踪文件的名称,并使用XML标签查看警报日志,并附带和不含内容过滤。 五、自动故障诊断工作流 六、自动诊断相关参考Oracle健康监控及健康检查 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |