(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文件清理

详见:Oracle listener.log 清理

【参考】

1.Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明

2.http://blog.itpub.net/29367946/viewspace-1683574/

自动诊断档案库(ADR)学习的更多相关文章

  1. Oracle 自己主动诊断资料档案库 (ADR)、自己主动诊断工作流、ADRCI工具

    1.自己主动诊断工作流: 通过一个始终处于打开状态的内存中跟踪工具,数据库组件能够在第一次出现严重错误故障时捕获诊断数据.系统将自己主动维护一个称为"自己主动诊断资料档案库"的特殊 ...

  2. [转]Oracle10g数据库自动诊断监视工具(ADDM)使用指南

    第一章 ADDM简介                 在Oracle9i及之前,DBA们已经拥有了很多很好用的性能分析工具,比如,tkprof.sql_trace.statspack.set even ...

  3. 面图层拓扑检查和错误自动修改—ArcGIS案例学习笔记

    面图层拓扑检查和错误自动修改-ArcGIS案例学习笔记 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 数据源: gis_ex10\ex01\parcel.shp, ...

  4. 基于TORCS和Torch7实现端到端连续动作自动驾驶深度强化学习模型(A3C)的训练

    基于TORCS(C++)和Torch7(lua)实现自动驾驶端到端深度强化学习模型(A3C-连续动作)的训练 先占坑,后续内容有空慢慢往里填 训练系统框架 先占坑,后续内容有空慢慢往里填 训练系统核心 ...

  5. 图像分类学习:X光胸片诊断识别----迁移学习

    引言   刚进入人工智能实验室,不知道是在学习机器学习还是深度学习,想来他俩可能是一个东西,查阅之后才知道这是两个领域,或许也有些交叉,毕竟我也刚接触,不甚了解.   在我还是个纯度小白之时,写下这篇 ...

  6. 【转】shell脚本实现多台服务器自动巡检--可参考学习

    shell脚本实现多台服务器自动巡检   摘要:           运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的CPU.内存.磁盘空间是否在正常值范围内.像 ...

  7. Abp 中 模块 加载及类型自动注入 源码学习笔记

    注意 互相关联多使用接口注册,所以可以 根据需要替换. 始于 Startup.cs 中的  通过 AddApplication 扩展方法添加 Abp支持 1 services.AddApplicati ...

  8. Java自动内存管理机制学习(二):垃圾回收器与内存分配策略

    备注:本文引自<深入理解Java虚拟机第二版>仅供参考 图片来自:http://csdn.net/WSYW126 垃圾收集器与内存分配策略 概述 GC要完成3件事: 哪些内存需要回收? 什 ...

  9. Java自动内存管理机制学习(一):Java内存区域与内存溢出异常

    备注:本文引用自<深入理解Java虚拟机第二版> 2.1 运行时数据区域 Java虚拟机在执行Java程序的过程中把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创 ...

随机推荐

  1. Oracle 过程中变量赋值

    create or replace function get_sal1(id employees.employee_id%type) return number is sal employees.sa ...

  2. 学习安卓开发过程中遇到关于R.Java文件的问题

    在学习安卓开发过程时,遇到R.java生成问题,总结几个方法解决. 1.首先必须做的就是检查代码的正确性,存在错误的代码,不编译生成R.java 2.右键点项目,选择 Android Tools -& ...

  3. pythion的定义函数和传递实参

    1.定义函数 例子: def greet_user(): """显示简单的问候语""" print("Hello!")g ...

  4. HDU 1003 最大连续和

    http://www.acmerblog.com/hdu-1003-Max-Sum-1258.html 这里难点只有求起始位置,把握状态变化就行.一般这种子序列问题,都可以用dp简化 #include ...

  5. cf1064D. Labyrinth(01BFS)

    题意 题目链接 给出一个\(n \times m\)的网格,给出起始点,要求向左走不超过\(L\)步,向右走不超过\(R\)步,求出能遍历到哪些点 Sol 一个很直观的想法,BFS的时候状态里记录下还 ...

  6. 集合之equals与hashCode方法

    一  equals equals方法是Object级的,默认对比两个对象的内存地址,很多类都重写了该方法,对比对象的实际内容,一般对比同一类对象相同属性的属性值是否相同. 二 hashCode 1.哈 ...

  7. H5分享到微信好友朋友圈QQ好友QQ空间微博二维码

    这是分享按钮: <button onclick="call()">通用分享</button> <button onclick="call(' ...

  8. 创建 XMLHttpRequest 对象时IE的兼容问题解决办法

    为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象.如果支持,则创建 XMLHttpRequest 对象.如果不支持,则创建 ActiveXO ...

  9. Struts2项目问题及解决方式

    1.  问题描述如图: 问题解释:意思就是execute()方法写错了. 问题解决: 改正:

  10. qt中的lineEdit文本输入框的输入类型限制(三种验证类)

    qt的三种验证类: 1.输入int类型 QValidator *validator=new QIntValidator(100,999,this): QLineEdit *edit=new QLine ...