Oracle ADR介绍

来源:这里教程网 时间:2026-03-03 18:16:58 作者:

简介: ADR 全称 Automatic Diagnostic Repository Oracle 11g 推出了 ADR ADR 存储所有组件 (DB ASM CRS 、监听等 ) 的日志和跟踪日志,提高了数据库的诊断能力。 ADR 产品 / 组件类型子目录 Oracle 数据库的 ADR 主路径组件 例如,对于SID 和数据库唯一名称均等于 orclbi 的数据库, ADR 目录将 位于以下位置: ADR_base/diag/rdbms/orclbi/orclbi/ 同样,单个实例环境中Oracle ASM 实例的 ADR 目录 为: ADR_base/diag/asm/+asm/+asm/ ADR 主页子目录 在每个ADR 主目录中都有包含诊断数据的子目录。 9-2 列出了其中一些子目录及其内容。 9-2 说明了数据库实例的 ADR 的完整目录层次结构。 使用V$DIAG_INFO 视图查看 ADR 位置 V$DIAG_INFO 视图列出了当前 Oracle 数据库实例的所有重要 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_Critical_ERROR 视图查看严重错误 V$DIAG_CRITICAL_ERROR 视图列出了当前 Oracle 数据库版本中指定为关键错误的所有非内部错误。 该视图未列出内部错误,因为内部错误始终被指定为关键错误。 以下示例显示了Oracle Database 11g Release 2 11.2.0.2 )中 V$DIAG_CRITICAL_ERROR 视图的输出:

SELECT * FROM V$DIAG_CRITICAL_ERROR;
 
FACILITY   ERROR
---------- ----------------------------------------------------------------
ORA        7445
ORA        4030
ORA        4031
ORA        29740
ORA        255
ORA        355
ORA        356
ORA        239
ORA        240
ORA        494
ORA        3137
ORA        227
ORA        353
ORA        1578
ORA        32701
ORA        32703
ORA        29770
ORA        29771
ORA        445
ORA        25319
OCI        3106
OCI        3113
OCI        3135

9-4 V$DIAG_CRITICAL_ERROR 视图中的数据 ADRCI 介绍 自动诊断存储库命令解释器( ADRCI )实用程序是用于管理 Oracle 数据库诊断数据的命令行工具。 关于 ADR 命令解释器( ADRCI )实用程序 ADRCI 是一个命令行工具,它是 Oracle 数据库 11g 中引入的故障诊断基础结构的一部分。 ADRCI 使您能够: 1. 在自动诊断库( ADR )中查看诊断数据。 2. 查看 Health Monitor 报告。 3. 将事件和问题信息打包到 zip 文件中,以便传输到 Oracle 支持部门。 4. 诊断数据包括事件和问题描述、跟踪文件、转储、运行状况监视器报告、警报日志条目等。 5. ADR 数据由 ADR 目录上的操作系统权限保护,因此无需登录 ADRCI 6. ADRCI 具有丰富的命令集,可以在交互模式或脚本中使用。 登录 adcri PATH 环境变量必须包含 ORACLE_HOME/bin

[oracle@cjcos02 ~]$ adrci
 
ADRCI: Release 11.2.0.4.0 - Production on Sat Dec 3 15:53:28 2022
 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
 
ADR base = "/oracle/app/oracle"
adrci>

查看帮助信息

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> help extended
 
 HELP [topic]
   Available Topics:
        BEGIN BACKUP
        CD
        CREATE STAGING XMLSCHEMA
        CREATE VIEW
        DDE
        DEFINE
        DELETE
        DESCRIBE
        DROP VIEW
        END BACKUP
        INSERT
        LIST DEFINE
        MERGE ALERT
        MERGE FILE
        MIGRATE
        QUERY
        REPAIR
        SELECT
        SET COLUMN
        SHOW CATALOG
        SHOW DUMP
        SHOW SECTION
        SHOW TRACE
        SHOW TRACEMAP
        SWEEP
        UNDEFINE
        UPDATE
        VIEW

在批处理模式下使用ADRCI 批处理模式允许您一次运行一系列ADRCI 命令,而无需提示输入

[oracle@cjcos02 ~]$ adrci -help
Syntax:
   adrci [-help] [script=script_filename] 
         [exec = "one_command [;one_command;...]"]
 
Options      Description                     (Default)
-----------------------------------------------------------------
script       script file name                (None)           
help         help on the command options     (None)           
exec         exec a set of commands          (None)           
-----------------------------------------------------------------
[oracle@cjcos02 ~]$ adrci exec="show homes"
ADR Homes: 
diag/rdbms/cjc/cjc
diag/clients/user_oracle/host_2119060462_80
diag/tnslsnr/cjcos02/listener

执行多个命令

[oracle@cjcos02 ~]$ adrci exec="show homes;show incident"
ADR Homes: 
diag/rdbms/cjc/cjc
diag/clients/user_oracle/host_2119060462_80
diag/tnslsnr/cjcos02/listener
 
ADR Home = /oracle/app/oracle/diag/rdbms/cjc/cjc:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME                              
-------------------- ----------------------------------------------------------- ---------------------------------------- 
20553                ORA 600 [kccsbck_first]                                     2022-10-15 10:40:54.717000 +08:00       
 
ADR Home = /oracle/app/oracle/diag/clients/user_oracle/host_2119060462_80:
*************************************************************************
0 rows fetched
 
ADR Home = /oracle/app/oracle/diag/tnslsnr/cjcos02/listener:
*************************************************************************
0 rows fetched

通过脚本执行命令

[oracle@cjcos02 ~]$ vi adrci.txt 
SET HOMEPATH diag/rdbms/orcl/orcl; SHOW ALERT -term
[oracle@cjcos02 ~]$ adrci script=adrci.txt
......
2022-09-03 21:14:05.698000 +08:00
03-SEP-2022 21:14:05 * service_update * cjc * 0
2022-09-03 21:14:32.708000 +08:00
03-SEP-2022 21:14:32 * service_update * cjc * 0

设置主目录 如果存在多个实例,可以指定特定的实例进行查看

adrci> show homes
ADR Homes:
diag/rdbms/orclbi/orclbi1
diag/rdbms/orclbi/orclbi2
adrci> set homepath diag/rdbms/orclbi/orclbi2
adrci> show homes
ADR Homes:
diag/rdbms/orclbi/orclbi2

查看警报日志   Alert Log Oracle Database 11g 开始,警报日志以 XML 格式文件和文本文件的形式编写。 您可以使用任何文本编辑器查看文件的格式,也可以运行ADRCI 命令查看 XML 格式的警报日志,其中省略了 XML 标记。 默认情况下,ADRCI 在默认编辑器中显示警报日志。 可以使用SET EDITOR 命令更改默认编辑器。

adrci> show alert
 
Choose the alert log from the following homes to view:
 
1: diag/rdbms/cjc/cjc
2: diag/clients/user_oracle/host_2119060462_80
3: diag/tnslsnr/cjcos02/listener
Q: to quit

查看告警日志常用命令 从末尾开始查看 adrci> show alert -tail 需要指定 HOMEPATH DIA-48449: Tail alert can only apply to single ADR home adrci> SET HOMEPATH diag/rdbms/cjc/cjc adrci> show alert -tail 查看末尾 10 adrci> show alert -tail 1 0 实时查看 adrci> show alert -tail -f adrci> show alert -tail 1 0  -f 将结果输出到文件 adrci> SPOOL /home/mysql/cjc1203.log adrci> SHOW ALERT -TERM adrci> SPOOL OFF 查询指定错误 adrci> set home diag/rdbms/cjc/cjc adrci> SHOW ALERT -P "MESSAGE_TEXT LIKE '%ORA-01110%'" 结果如下:

......
2022-10-15 14:32:32.616000 +08:00
Errors in file /oracle/app/oracle/diag/rdbms/cjc/cjc/trace/cjc_j000_5143.trc:
ORA-12012: error on auto execute of job 3
ORA-00376: file 5 cannot be read at this time
ORA-01110: data file 5: '/oradata/cjc/cjctbs01.dbf'
ORA-06512: at "CJC.TEST_PRO", line 4
ORA-06512: at line 1

查找跟踪文件 tracefile 查看所有跟踪文件 adrci> SHOW TRACEFILE 查看 mmon 相关跟踪文件 adrci> SHOW TRACEFILE %mmon% 列出指定目录下,包含 mmon 的所有文件名称 adrci> SHOW TRACEFILE %mmon% -PATH /oracle/app/oracle/diag/rdbms/cjc/cjc/trace 按最近修改时间进行排序 adrci> SHOW TRACEFILE -RT 列出了与事件编号1681 相关的所有跟踪文件的名称 adrci> SHOW TRACEFILE -I 1681 查看事件 Incidents adrci> SHOW INCIDENT

ADR Home = /oracle/app/oracle/diag/rdbms/cjc/cjc:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME                              
-------------------- ----------------------------------------------------------- ---------------------------------------- 
20553                ORA 600 [kccsbck_first]                                     2022-10-15 10:40:54.717000 +08:00       
1 rows fetched

生成更详细的报告 adrci> SHOW INCIDENT -MODE BRIEF adrci> SHOW INCIDENT -MODE DETAIL

ADR Home = /oracle/app/oracle/diag/rdbms/cjc/cjc:
*************************************************************************
 
**********************************************************
INCIDENT INFO RECORD 1
**********************************************************
   INCIDENT_ID                   20553
   STATUS                        ready
   CREATE_TIME                   2022-10-15 10:40:54.717000 +08:00
   PROBLEM_ID                    1
   CLOSE_TIME                    <NULL>
   FLOOD_CONTROLLED              none
   ERROR_FACILITY                ORA
   ERROR_NUMBER                  600
   ERROR_ARG1                    kccsbck_first
   ERROR_ARG2                    1
   ERROR_ARG3                    3760267893
   ERROR_ARG4                    <NULL>
   ERROR_ARG5                    <NULL>
   ERROR_ARG6                    <NULL>
   ERROR_ARG7                    <NULL>
   ERROR_ARG8                    <NULL>
   ERROR_ARG9                    <NULL>
   ERROR_ARG10                   <NULL>
   ERROR_ARG11                   <NULL>
   ERROR_ARG12                   <NULL>
   SIGNALLING_COMPONENT          <NULL>
   SIGNALLING_SUBCOMPONENT       <NULL>
   SUSPECT_COMPONENT             <NULL>
   SUSPECT_SUBCOMPONENT          <NULL>
   ECID                          <NULL>
   IMPACTS                       0
   PROBLEM_KEY                   ORA 600 [kccsbck_first]
   FIRST_INCIDENT                20553
   FIRSTINC_TIME                 2022-10-15 10:40:54.717000 +08:00
   LAST_INCIDENT                 20553
   LASTINC_TIME                  2022-10-15 10:40:54.717000 +08:00
   IMPACT1                       34668546
   IMPACT2                       0
   IMPACT3                       0
   IMPACT4                       0
   KEY_NAME                      ProcId
   KEY_VALUE                     19.1
   KEY_NAME                      PQ
   KEY_VALUE                     (16777216, 1665801648)
   KEY_NAME                      Client ProcId
   KEY_VALUE                     oracle@cjcos02 (TNS V1-V3).6377_140737352873792
   KEY_NAME                      SID
   KEY_VALUE                     1.3
   OWNER_ID                      1
   INCIDENT_FILE                 /oracle/app/oracle/diag/rdbms/cjc/cjc/trace/cjc_ora_6377.trc
   OWNER_ID                      1
   INCIDENT_FILE                 /oracle/app/oracle/diag/rdbms/cjc/cjc/incident/incdir_20553/cjc_ora_6377_i20553.trc
1 rows fetched

仅显示了事件1681 的详细事件报告 adrci> SHOW INCIDENT -MODE DETAIL -P "INCIDENT_ID=1681" 参考: https://docs.oracle.com/cd/E11882_01/server.112/e25494/diag.htm#ADMIN11007 https://docs.oracle.com/cd/E11882_01/server.112/e22490/adrci.htm#SUTIL700

相关推荐