zoukankan      html  css  js  c++  java
  • 自动诊断档案库(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自动诊断资料库的文件路径如下图:

    adr1

    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/

  • 相关阅读:
    通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用
    >>>---PHP中的OOP-->面对过程与面对对象基础概念与内容--(封装、继承、多态)
    基于HBuilder开发手机APP-主页/跳转页面/切换选项卡
    PHP基础学习
    JavaScript学习-js中的数组/Boolean类/字符串String类
    关于gulp中顺序执行任务
    AugularJS从入门到实践(三)
    AugularJS从入门到实践(二)
    用CSS实现响应式布局
    React+ANTD项目使用后的一些关于生命周期比较实用的心得
  • 原文地址:https://www.cnblogs.com/lijiaman/p/6665995.html
Copyright © 2011-2022 走看看