千家信息网

oracle 11g ADR

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,ADR是11g引用入的基于文件的数据库诊断数据存储库,用于存储例如跟踪、转储、警报日志、运行状况监视器报告等。它具有跨多个实例和多个产品的统一目录结构。10g中的初始化参数BACKGROUND_DUM
千家信息网最后更新 2025年01月20日oracle 11g ADR

ADR11g引用入的基于文件的数据库诊断数据存储库,用于存储例如跟踪、转储、警报日志、运行状况监视器报告等。它具有跨多个实例和多个产品的统一目录结构。10g中的初始化参数BACKGROUND_DUMP_DESTUSER_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子目录根据安装产品的不同会生成不同的产品或组件的诊断日志,如安装了dbgi的操作系统上通常有以下目录结构:

数据库实例的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命令行工具

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

[oracle@prodb ~]$ adrci -helpSyntax:   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.txtshow 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 homesADR Homes:diag/tnslsnr/prodb/listenerdiag/rdbms/prodb/prodbdiag/clients/user_oracle/host_3001804591_80

2.指定adr_home

adrci> set home diag/rdbms/prodb/prodbadrci> show homesADR 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.logadrci> show alert -p "message_text like '%ORA%'"

4.显示告警事件

adrci> show incidentadrci> show incident -mode detailadrci> 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 373adrci> 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 中的文件添加到现有程序包。



0