20221203-Oracle ADR介绍

在这里插入图片描述

简介:

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 D I A G C r i t i c a l E R R O R 视图查看严重错误 ∗ ∗ V DIAG_Critical_ERROR 视图查看严重错误** V DIAGCriticalERROR视图查看严重错误VDIAG_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

欢迎关注我的公众号《IT小Chen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值