自动诊断档案库(ADR)学习
(1)ADR概述
Oracle 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的一个增强,其核心组件为自动诊断库(Automatic Diagnostic Repository--ADR)。
在Oracle 11g之前,Oracle的各类跟踪文件、日志文件等诊断信息的存储位置并不统一。Oracle 11g中,在基于FDI的基础架构之上,Oracle开始统一规划这些文件的存储。
ADR的路径被称为ADR BASE(ADR基目录),由初始化参数DIAGNOSTIC_DEST决定:
SQL> show parameter diagnostic_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ diagnostic_dest string /home/app/oracle
ADR自动诊断资料库的文件路径如下图:
ADR基目录可以包含多个ADR主目录,每个ADR主目录都是一个根目录,用于存放Oracle产品或组件特定实例的全部诊断数据。
incident目录包含多个子目录,每个子目录均以特定意外事件命名,并且仅包含与该意外事件相关的转储。
hm目录包含由健康状况监视器生成的报告。
metadata包含资料档案库自身的重要文件,可将此目录比作数据库数据字典,可通过ADRCI查询此字典。
例子1.查看ADR BASE的目录结构:
[oracle@localhost oracle]$ tree -d diag/ diag/ ├── rdbms │ └── orcl │ └── orcl │ ├── alert │ ├── cdump │ ├── hm │ ├── incident │ ├── incpkg │ ├── ir │ ├── lck │ ├── metadata │ ├── stage │ ├── sweep │ └── trace └── tnslsnr └── localhost └── listener ├── alert ├── cdump ├── incident ├── incpkg ├── lck ├── metadata ├── stage ├── sweep └── trace 26 directories
通过目录结构,可以看到实例(orcl)以及监听器的日志都会放到”../diag”中,如果是RAC数据库,还可以看到crs、asm的路径信息。
此外,Oracle 11g可通过一个新的视图V$DIAG_INFO来查看ADR信息:
SELECT * FROM V$DIAG_INFO; INSTID NAME VALUE ------------------------------------------------------------------------------------------- 1 Diag Enabled TRUE 1 ADR Base /home/app/oracle 1 ADR Home /home/app/oracle/diag/rdbms/orcl/orcl 1 Diag Trace /home/app/oracle/diag/rdbms/orcl/orcl/trace 1 Diag Alert /home/app/oracle/diag/rdbms/orcl/orcl/alert 1 Diag Incident /home/app/oracle/diag/rdbms/orcl/orcl/incident 1 Diag Cdump /home/app/oracle/diag/rdbms/orcl/orcl/cdump 1 Health Monitor /home/app/oracle/diag/rdbms/orcl/orcl/hm 1 Default Trace File /home/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_25071.trc 1 Active Problem Count 0 1 Active Incident Count 0
其中,“../atert”路径下保存的是xml格式的alert日志,“../trace”路径下保存的是文本格式的alert日志,两个日志内容相同。在../tracle路径下还包含很多的”.trm”,”.trc”文件,这个是数据库的后台/前台跟踪文件,这个后面讨论。
(2)trm和trc文件
1.trc文件
trc文件全称sql Trace Collection file,它是系统的跟踪文件,当系统启动时或运行过程中出现错误时,系统会自动记录到跟踪文件的指定目录,以便于检查,这些文件需要定期删除。
2.trm文件
trm文件全称Trace Map file,被称为跟踪元数据文件,trm文件中的元数据描述了存储在.trc文件中的跟踪记录。
trm文件伴随着trc文件产生,一个trm文件对应一个trc文件,trm文件包含trc文件的结构化信息。
(3)ADRCI工具
ADRCI是一个ADR的命令行工具,使用ADRCI,可以:
1.查看自动诊断资料库(ADR)里面的诊断数据;
2.将意外事件和问题信息打包成ZIP文件,以传输到Oracle技术支持。
其主要功能如下:
adrci> help HELP [topic] Available Topics: CREATE REPORT ECHO EXIT HELP HOST IPS PURGE RUN SET BASE SET BROWSER SET CONTROL SET ECHO SET EDITOR SET HOMES | HOME | HOMEPATH SET TERMOUT SHOW ALERT SHOW BASE SHOW CONTROL SHOW HM_RUN SHOW HOMES | HOME | HOMEPATH SHOW INCDIR SHOW INCIDENT SHOW PROBLEM SHOW REPORT SHOW TRACEFILE SPOOL
(4)使用ADRCI清空日志
清空日志使用的是ADRCI工具的purge命令,关于该命令的用法,我们可以看文档:
adrci> help purge Usage: PURGE [[-i <id1> | <id1> <id2>] | [-age <mins> [-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]]]: Purpose: Purge the diagnostic data in the current ADR home. If no option is specified, the default purging policy will be used. Options: [-i id1 | id1 id2]: Users can input a single incident ID, or a range of incidents to purge. [-age <mins>]: Users can specify the purging policy either to all the diagnostic data or the specified type. The data older than <mins> ago will be purged [-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]: Users can specify what type of data to be purged. Examples: purge purge -i 123 456 purge -age 60 -type incident
解析:
- 目的:清空当前ADR路径下的日志,如果没有选项被指定,默认的PURGE方案将被执行。
- 选项:
[-i id1 | id1 id2]:用户可以输入一个incident id,或者输入incident id的范围来清空。
[-age <mints>]:用户可以对全部的诊断数据或者指定的数据类型进行清空,超过age分钟前的数据将被清除。
[-type ALTER|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]:用户可以指定被清空的数据类型
例子2.清空60分钟前trace日志,在清空前别忘记备份
step1:清空前
[oracle@localhost orcl]$ pwd /home/app/oracle/diag/rdbms/orcl/orcl [oracle@localhost orcl]$ du -ks * 4 alert 4 cdump 4 hm 4 incident 4 incpkg 8 ir 4 lck 2568 metadata 4 stage 4 sweep 2232 trace #trace大小为2232
step2:清空60分钟前的trace日志
adrci> show homes ADR Homes: diag/rdbms/orcl/orcl adrci> purge -age 60 -type trace
step3:再次查看大小
[oracle@localhost orcl]$ du -ks * 4 alert 4 cdump 4 hm 4 incident 4 incpkg 8 ir 4 lck 2568 metadata 4 stage 4 sweep 240 trace #trace大小为240
(5)listener.log文件清理
【参考】
相关文章
- Docker学习笔记:容器自动重启--restart
- JSON通信一定是字符串,即使配置成整数,也会自动转成字符串传播
- 【BZOJ4195】[Noi2015]程序自动分析 并查集
- CSS - display flex 弹性布局实现一行仅显示 2 个,每行显示指定个数(设置 space-between / space-around 超出自动换行)详细示例代码
- 大数据与机器学习:实践方法与行业案例.3.2 自动加载的流程
- DataHub: 现代数据栈的元数据平台--如何配置DataHub作为Airflow的数据血缘后端存储,自动将工作流DAG写入DataHub作为数据血缘?
- C#实现ATM自动取款机
- Linux单机MySQL数据库自动备份
- 江帅帅:Spring Boot 底层级探索系列 02 - 自动配置的底层逻辑
- 「基于Django的全民健康智慧中医数字服务平台」基于深度学习抓取文章自动多分类算法模型
- 转 Windows 7设置定时自动执行任务方法
- Ubuntu18.04server 双网卡,开机自动设置路由并启动校园网网络认证程序(Ubuntu开机自动设置路由,开机自启动应用程序)
- springboot学习之五(自动配置)
- cocos2dx lua 绑定:自动绑定自定义类中的函数 【转载】
- “物联网开发实战”学习笔记-(五)根据土壤湿度、环境温湿度和光照强度自动浇花
- 【玩转数据系列十五】机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码)
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第二话):安装插件,配置JDK、Git、Ant
- Gitalk 自动初始化评论
- div 自适应高度 自动填充剩余高度
- Python量化交易学习笔记(十二)——程序化交易,自动登录软件