Oracle ADR介紹

chenoracle發表於2022-12-03

簡介:

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"

參考:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2926599/,如需轉載,請註明出處,否則將追究法律責任。

相關文章