暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Oracle ADR介绍

IT小Chen 2022-12-04
2047

简介:

ADR全称Automatic Diagnostic Repository

Oracle 11g推出了ADRADR存储所有组件(DBASMCRS、监听等)的日志和跟踪日志,提高了数据库的诊断能力。

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 211.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 10

                                  实时查看

                                    adrci> show alert -tail -f
                                    adrci> show alert -tail 10 -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,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                            评论