程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle 自動診斷資料檔案庫 (ADR)、自動診斷工作流、ADRCI工具

Oracle 自動診斷資料檔案庫 (ADR)、自動診斷工作流、ADRCI工具

編輯:Oracle教程

Oracle 自動診斷資料檔案庫 (ADR)、自動診斷工作流、ADRCI工具


.自動診斷工作流:

通過一個始終處於打開狀態的內存中跟蹤工具,數據庫組件可以在第一次出現嚴重錯誤故障時捕獲診斷數據。系統將自動維護一個稱為“自動診斷資料檔案庫”的特殊資料檔案庫,以保存有關嚴重錯誤事件的診斷信息。此信息可用於創建要發送到 Oracle 支持服務以進行調查的意外事件程序包。

下面是一個典型的診斷會話工作流:
1)意外事件導致 Oracle Enterprise Manager (EM) 中出現預警。

2)DBA 可通過 EM 的“Alert(預警)”頁查看此預警。

3)DBA 可以細化到意外事件和問題的詳細信息。

4)DBA 可以決定或 Oracle 支持服務可以要求將信息打包並通過 MetaLink 發送到 Oracle 支持服務。DBA 可以將文件添加到自動打包的數據中。

\

2.自動診斷資料檔案庫 (ADR)

\

ADR 是一個基於文件的資料檔案庫,用於存放數據庫診斷數據(如跟蹤、意外事件轉儲和程序包、預警日志、健康監視報表、核心轉儲等)。它對存儲在任何數據庫外的多個實例和多種產品使用一個統一的目錄結構。因此,在數據庫關閉時可用來診斷問題。

從 Oracle Database 11g R1 開始,數據庫、自動存儲管理 (ASM)、集群就緒服務 (CRS) 和其它 Oracle 產品或組件將所有診斷數據都存儲在 ADR 中。每種產品的每個實例都將診斷數據存儲在自己的 ADR 主目錄下。例如,在具有共享存儲和 ASM 的 Real Application Clusters 環境中,每個數據庫實例和每個 ASM 實例在 ADR 中都有一個主目錄。

利用 ADR 的統一目錄結構、用於各種產品和實例的統一診斷數據格式以及一組統一的工具,客戶和 Oracle 技術支持可以相互關聯並分析多個實例的診斷數據。

ADR 根目錄又稱為 ADR 基目錄,其位置由 DIAGNOSTIC_DEST 初始化參數設置。如果此參數被忽略或留為空值,則數據庫在啟動時將對 DIAGNOSTIC_DEST 進行如下設置:如果設置了環境變量 ORACLE_BASE,則將 DIAGNOSTIC_DEST 設置為 $ORACLE_BASE。如果未設置環境變量 ORACLE_BASE,則將 DIAGNOSTIC_DEST 設置為 $ORACLE_HOME/log。

3.ADR 命令行工具 ADRCI

ADRCI 是一種命令行工具,屬於數據庫故障診斷基礎結構的一部分。

ADRCI 可以通過操作系統提示符與 ADR 進行交互。

使用 ADRCI 可以查看自動診斷資料檔案庫中的診斷數據。

使用 ADRCI 可以:
--查看自動診斷資料檔案庫 (ADR) 中的診斷數據 
--將意外事件和問題信息打包成 zip 文件傳輸到 Oracle 技術支持

ADRCI 具有豐富的命令集,可在交互模式下使用,也可以在腳本中使用。此外,ADRCI 還可以執行 ADRCI 命令腳本,使用的方式與 SQL*Plus 執行 SQL 腳本和 PL/SQL 命令的方式相同。

$ adrci

ADRCI: Release 11.1.0.5.0 - On Sat Jul 7 08:01:40 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved. 

ADR base = "/u01/app/oracle" 

ADRCI> show incident

ADR Home = /u01/app/oracle/product/11.1.0/db_1/log/diag/rdbms/orcl/orcl:

************************************************************************** 
INCIDENT_ID PROBLEM_KEY                          CREATE_TIME

----------- ------------------------------------ ------------------------

1681        ORA-600_dbgris01:1,_addr=0xa9876541  17-JAN-07 09.17.44.843125… 

1682        ORA-600_dbgris01:12,_addr=0xa9876542 18-JAN-07 09.18.59.434775…

2 incident info records fetched

4.V$DIAG_INFO 視圖

SQL> SELECT * FROM V$DIAG_INFO;

NAME                  VALUE 
-------------------   ------------------------------------------------- 
Diag Enabled          TRUE

ADR Base              /u01/app/oracle

ADR Home              /u01/app/oracle/diag/rdbms/orcl/orcl

Diag Trace            /u01/app/oracle/diag/rdbms/orcl/orcl/trace

Diag Alert            /u01/app/oracle/diag/rdbms/orcl/orcl/alert

Diag Incident         /u01/app/oracle/diag/rdbms/orcl/orcl/incident

Diag Cdump            /u01/app/oracle/diag/rdbms/orcl/orcl/cdump

Health Monitor        /u01/app/oracle/diag/rdbms/orcl/orcl/hm

Default Trace File    /u01/app/oracle/diag/.../trace/orcl_ora_11424.trc

Active Problem Count  3

Active Incident Count 8

V$DIAG_INFO 視圖列出了所有重要 ADR 的位置:

ADR Base:ADR 基目錄的路徑。

ADR Home:當前數據庫實例的 ADR 主目錄的路徑。

Diag Trace:文本預警日志和後台/前台進程跟蹤文件的位置。

Diag Alert:XML 版本的預警日志的位置。 
Diag Incident:意外事件日志的寫入位置。

Diag Cdump:在此目錄中寫入診斷核心文件。

Health Monitor:運行健康監視時產生的日志的位置。

Default Trace File:會話的跟蹤文件的路徑。SQL 跟蹤文件寫入此位置。

5.Oracle 10g 與 Oracle 11g 的診斷跟蹤的位置

診斷數據          以前的位置                                                ADR 位置 
前台進程跟蹤  USER_DUMP_DEST                                ADR_HOME/trace 
後台進程跟蹤  BACKGROUND_DUMP_DEST                ADR_HOME/trace 
預警日志數據  BACKGROUND_DUMP_DEST                ADR_HOME/alert   ADR_HOME/trace 
核心轉儲         CORE_DUMP_DEST                                ADR_HOME/cdump 
意外事件轉儲  USER|BACKGROUND_DUMP_DEST      ADR_HOME/incident/incdir_n

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved