oracle 11g ADR

ADR是11g引用入的基于文件的数据库诊断数据存储库,用于存储例如跟踪、转储、警报日志、运行状况监视器报告等。它具有跨多个实例和多个产品的统一目录结构。10g中的初始化参数BACKGROUND_DUMP_DEST和USER_DUMP_DEST已被弃用。具体的位置已设置为DIAGNOSTIC_DEST标识ADR的位置。

诊断数据

以前的位置

ADR位置

意外事件转储

USER|BACKGROUND_DUMP_DEST

$ADR_HOME/incident/incdir_n                             

核心转储

CORE_DUMP_DEST

$ADR_HOME/cdump

预警日志数据

BACKGROUND_DUMP_DEST

$ADR_HOME/alert&trace

后台进程跟踪

BACKGROUND_DUMP_DEST

$ADR_HOME/trace

前台进程跟踪

USER_DUMP_DEST

$ADR_HOME/trace




如果省略DIAGNOSTIC_DEST参数或保留为null,则数据库DIAGNOSTIC_DEST在启动时设置如下:

如果ORACLE_BASE设置了环境变量,DIAGNOSTIC_DEST则设置为指定的目录ORACLE_BASE。

如果ORACLE_BASE未设置环境变量,DIAGNOSTIC_DEST则设置为ORACLE_HOME / log。

ADR子目录根据安装产品的不同会生成不同的产品或组件的诊断日志,如安装了db各gi的操作系统上通常有以下目录结构:

oracle 11g ADR

    数据库实例的ADR目录结构如下:

oracle 11g ADR


包含以下部分:

子目录名称

内容

Alert

XML格式的警报日志

cdump

核心文件

Incident

多个子目录,其中每个子目录都针对特定事件命名,每个子目录包含仅与该事件有关的转储

trace

后台和服务器进程跟踪文件,SQL跟踪文件和文本格式的警报日志

(其他)

ADR home的其他子目录,用于存储事件包,运行状况监视器报告,警报日志以外的日志(如DDL日志和调试日志)等信息



数据库具体的ADR目录可查看视图得到:

SELECT * FROM V$DIAG_INFO;
 
INST_ID NAME                  VALUE
------- --------------------- -------------------------------------------------------------
      1 Diag Enabled          TRUE
      1 ADR Base              /u01/oracle
      1 ADR Home              /u01/oracle/diag/rdbms/orclbi/orclbi
      1 Diag Trace            /u01/oracle/diag/rdbms/orclbi/orclbi/trace
      1 Diag Alert            /u01/oracle/diag/rdbms/orclbi/orclbi/alert
      1 Diag Incident         /u01/oracle/diag/rdbms/orclbi/orclbi/incident
      1 Diag Cdump            /u01/oracle/diag/rdbms/orclbi/orclbi/cdump
      1 Health Monitor        /u01/oracle/diag/rdbms/orclbi/orclbi/hm
      1 Default Trace File    /u01/oracle/diag/rdbms/orclbi/orclbi/trace/orcl_ora_22769.trc
      1 Active Problem Count  8
      1 Active Incident Count 20

V$DIAG_INFO 视图列出了所有重要的 ADR 位置,包括:

• ADR Base:ADR 基目录的路径。
• ADR Home:当前数据库实例的 ADR 主目录的路径。
• Diag Trace:文本预警日志和后台/前台进程跟踪文件的位置。
• Diag Alert:XML 版本的预警日志的位置。
• Default Trace File:会话的跟踪文件的路径。SQL 跟踪文件将写入到这里。


Adrci命令行工具

adrci是oracle 11g中用来管理日志文件的一个命令行工具。

[oracle@prodb ~]$ adrci -help
Syntax:
   adrci [-help] [script=script_filename] [exec = "one_command [;one_command;...]"]
   
[oracle@prodb ~]$ adrci
 
ADRCI: Release 11.2.0.4.0 - Production on Thu May 31 14:32:48 2018
 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
 
ADR base = "/u01"
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
 
 There are other commands intended to be used directly by Oracle, type
 "HELP EXTENDED" to see the list
 
adrci>

adrci支持脚本方式和exec的命令集方式。

 

脚本方式:

该脚本为修改trc\trm日志保留天数为5-7天。
[oracle@prodb ~]$ cat adrci_script.txt
show homes;
set home diag/rdbms/prodb/prodb;
set control (SHORTP_POLICY = 120);
set control (LONGP_POLICY = 168);
show control;
[oracle@prodb ~]$ adrci script=adrci_script.txt

exec命令集方式:

[oracle@prodb ~]$ adrci exec="show homes;set home diag/rdbms/prodb/prodb;set control \(SHORTP_POLICY=120\);set control \(LONGP_POLICY=168\);show control"


常见的adrci命令:

     1.显示adr_home


adrci> show homes
ADR Homes:
diag/tnslsnr/prodb/listener
diag/rdbms/prodb/prodb
diag/clients/user_oracle/host_3001804591_80

2.指定adr_home

adrci> set home diag/rdbms/prodb/prodb
adrci> show homes
ADR Homes:
diag/rdbms/prodb/prodb

 

3.显示alter文件

adrci> show alert  #按q退出
adrci> show alert -tail 50   #显示最后50行
adrci> show alert -tail 50   #tail -f alert_sid.log
adrci> show alert -p "message_text like '%ORA%'"

 

4.显示告警事件

adrci> show incident
adrci> show incident -mode detail
adrci> show incident -mode detail -p "incident_id=123"

 

4.显示问题

adrci> show problem

 

5.删除10天前的incident 14400=60min*24*10

adrci> purge -age 14400 -type incident

 

生成诊断package

1)意外事件程序包是 ADR 中的一个逻辑结构,用于描述一个或多个问题。
2)程序包是一个 zip 文件,其中包含与某个意外事件程序包有关的转储信息。
3)默认情况下,一个意外事件程序包中只包含每个问题的前三个意外事件和后三个意外事件。
4)可以生成完整的 zip 文件,也可以生成增量 zip 文件。


1.创建逻辑包

adrci> ips create package incident 373
adrci> ips add incident 168 package 1

2.输出物理包

adrci>ips generate package 1 in /home/oracle


其他的打包命令:

• IPS CREATE PACKAGE 用于创建空的程序包。
• IPS CREATE PACKAGE PROBLEMKEY 用于创建基于问题关键字的程序包。
• IPS CREATE PACKAGE PROBLEM 用于创建基于问题 ID 的程序包。
• IPS CREATE PACKAGE INCIDENT 用于创建基于意外事件 ID 的程序包。
• IPS CREATE PACKAGE SECONDS 用于创建包含从数秒前到现在为止这个时间间隔内生成的所有意外事件的程序包。
• IPS CREATE PACKAGE TIME 用于创建基于指定时间范围的程序包。也可以向现有程序包添加内容。例如:
• IPS ADD INCIDENT PACKAGE 用于将意外事件添加到现有程序包。
• IPS ADD FILE PACKAGE 用于将 ADR 中的文件添加到现有程序包。



上一篇:Formelsammlung Mathematik: Bestimmte Integrale: Form R(x,tan)


下一篇:测试