自动诊断档案库(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的目录结构:

[[email protected] 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:清空前

[[email protected] orcl]$ pwd
/home/app/oracle/diag/rdbms/orcl/orcl
[[email protected] 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:再次查看大小

[[email protected] 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/

时间: 2024-11-10 01:30:27

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

oracle体系-6-自动诊断信息库ADR

自动诊断信息 ADR(Automatic Diagnostic Repository) 一般基于操作系统层面树状结构 主要包括告警日志.追踪文件.健康记录.dump.bump.aump等文件 SQL> show parameter diagnostic_dest NAME                              TYPE        VALUE ------------------------------------ ----------- -----------------

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

1.自动诊断工作流: 通过一个始终处于打开状态的内存中跟踪工具,数据库组件可以在第一次出现严重错误故障时捕获诊断数据.系统将自动维护一个称为"自动诊断资料档案库"的特殊资料档案库,以保存有关严重错误事件的诊断信息.此信息可用于创建要发送到 Oracle 支持服务以进行调查的意外事件程序包. 下面是一个典型的诊断会话工作流: 1)意外事件导致 Oracle Enterprise Manager (EM) 中出现预警. 2)DBA 可通过 EM 的"Alert(预警)"

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

第一章 ADDM简介                 在Oracle9i及之前,DBA们已经拥有了很多很好用的性能分析工具,比如,tkprof.sql_trace.statspack.set event 10046&10053等等.这些工具能够帮助DBA很快的定位性能问题.但这些工具都只给出一些统计数据,然后再由DBA们根据自己的经验进行 优化.         那能不能由机器自动在统计数据的基础上给出优化建议呢?Oracle10g中就推出了新的优化诊断工具:数据库自动诊断监视工具(Automa

一种利用人参酒自动诊断失眠的仪器

技术领域 本实用新型涉及一种利用人参酒自动诊断失眠的仪器,尤其是一种诊断失眠的仪器. 背景技术 现有诊断失眠的仪器是职业医师用来检查患者失眠状态,并利用其对患者的病情进行分析的仪器.一种利用人参酒自动诊断失眠的仪器是一种可以替代医师来诊断失眠患者病情的仪器.它是按照加法器,乘法器的计算,并利用人参酒.黄酒.白酒.葡萄酒和啤酒对患者的病情进行治疗的电子仪器.它具有自动诊断失眠患者病情的能力,经长期临床检验,对失眠患者的治愈率高达20%. 实用新型内容 为了解决职业医师对失眠患者病情判断不准确的缺陷

oracle 自动诊断信息库(Automatic Diagnostic Repository,ADR)

ORACLE 11G中的ADR介绍: ADRCI 之oracle 日志查看 在Oracle的11g版本中,alert文件的位置发生了变化,与此同时Oracle提供了一个命令行工具ADRCI,它可以很便利的查看数据库中出现的异常. 以下给大家展示一下使用ADRCI (ADR Command Interface) 在11g中查看Oracle的警告日志的方法. 1.进入到adrci命令行模式[email protected] /home/oracle$ which adrci/oracle/u01/a

[JS]图片自动切换效果(学习笔记)

上次在下载的网页中看到 javascript实现图片自动切换效果: <style text="text/css"> /*图片滚动栏*/.container, .container * {    margin: 0;    padding: 0;}.container {    width: 1005px;    height: 395px;    float: right;    overflow: hidden;    position: relative;    rig

自动出题判分——c#学习实践

1.程序功能自动出题—(程序随意给出10以内加减乘除)并且判断结果正确与否,正确打对勾,错误打错号. 2.设计界面: 3.代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks;

Android开发之搜索框自动提示细节MatrixCursor学习

1,在ActionBar里面加入搜索框 在ActionBar里面加入搜索框是现在APP应用的常用做法.要想把搜索做好,可不是那么容易.涉及到自动提示和真正的搜索.下图是我对一个相对完整的搜索框涉及的元素关系做了一个图,箭头只表示它们之间有关系,不是类图中的继承. 一个Activity会有一个ActionBar,默认情况下.你可以在ActionBar里面添加菜单条目.菜单条目可以设置标题,图标以及关联的ActionView,这里我们关联了一个SearchView.SearchView和Search

javascript实现自动切换焦点功能学习

当用户在表单中填写完当前字段后,能否自动将焦点跳转到下一个字段以方便用户输入? 为了增强易用性,加快数据输入的速度,可以在前一个文本框中的字符达到一定的设置的字符长度后(比如电话号码,身份证号等),用户输入完后,自动将焦点切换到下一个文本框中.可以使用JS来实现这一功能. 思路:首先,比较用户输入的值和文本框中的maxlength特性,确定是否达到了指定的长度(或者允许输入的最大长度),如果这两个值相等,就去查找表单字段的集合,找到下一个文本框,将焦点切换到该文本框中. 代码: 1 <!DOCT