oracle 11g ADR

ADR11g引用入的基於文件的數據庫診斷數據存儲庫,用於存儲例如跟蹤、轉儲、警報日誌、運行狀況監視器報告等。它具有跨多個實例和多個產品的統一目錄結構。10g中的初始化參數BACKGROUND_DUMP_DESTUSER_DUMP_DEST已被棄用。具體的位置已設置爲DIAGNOSTIC_DEST標識ADR的位置。

診斷數據

以前的位置

ADR位置

意外事件轉儲

USER|BACKGROUND_DUMP_DEST

$ADR_HOME/incident/incdir_n                             

核心轉儲

CORE_DUMP_DEST

$ADR_HOME/cdump

預警日誌數據

BACKGROUND_DUMP_DEST

$ADR_HOME/alert&trace

後臺進程跟蹤

BACKGROUND_DUMP_DEST

$ADR_HOME/trace

前臺進程跟蹤

USER_DUMP_DEST

$ADR_HOME/trace




如果省略DIAGNOSTIC_DEST參數或保留爲null,則數據庫DIAGNOSTIC_DEST在啓動時設置如下:

如果ORACLE_BASE設置了環境變量,DIAGNOSTIC_DEST則設置爲指定的目錄ORACLE_BASE

如果ORACLE_BASE未設置環境變量,DIAGNOSTIC_DEST則設置爲ORACLE_HOME / log

ADR子目錄根據安裝產品的不同會生成不同的產品或組件的診斷日誌,如安裝了dbgi的操作系統上通常有以下目錄結構:

0.png

    數據庫實例的ADR目錄結構如下:

1.gif


包含以下部分:

子目錄名稱

內容

Alert

XML格式的警報日誌

cdump

核心文件

Incident

多個子目錄,其中每個子目錄都針對特定事件命名,每個子目錄包含僅與該事件有關的轉儲

trace

後臺和服務器進程跟蹤文件,SQL跟蹤文件和文本格式的警報日誌

(其他)

ADR home的其他子目錄,用於存儲事件包,運行狀況監視器報告,警報日誌以外的日誌(如DDL日誌和調試日誌)等信息



數據庫具體的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_INFO 視圖列出了所有重要的 ADR 位置,包括:

• ADR Base:ADR 基目錄的路徑。
• ADR Home:當前數據庫實例的 ADR 主目錄的路徑。
• Diag Trace:文本預警日誌和後臺/前臺進程跟蹤文件的位置。
• Diag Alert:XML 版本的預警日誌的位置。
• Default Trace File:會話的跟蹤文件的路徑。SQL 跟蹤文件將寫入到這裏。


Adrci命令行工具

adrcioracle 11g中用來管理日誌文件的一個命令行工具。

[oracle@prodb ~]$ adrci -help
Syntax:
   adrci [-help] [script=script_filename] [exec = "one_command [;one_command;...]"]
   
[oracle@prodb ~]$ adrci
 
ADRCI: Release 11.2.0.4.0 - Production on Thu May 31 14:32:48 2018
 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
 
ADR base = "/u01"
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>

adrci支持腳本方式和exec的命令集方式。

 

腳本方式:

該腳本爲修改trc\trm日誌保留天數爲5-7天。
[oracle@prodb ~]$ cat adrci_script.txt
show homes;
set home diag/rdbms/prodb/prodb;
set control (SHORTP_POLICY = 120);
set control (LONGP_POLICY = 168);
show control;
[oracle@prodb ~]$ adrci script=adrci_script.txt

exec命令集方式:

[oracle@prodb ~]$ adrci exec="show homes;set home diag/rdbms/prodb/prodb;set control \(SHORTP_POLICY=120\);set control \(LONGP_POLICY=168\);show control"


常見的adrci命令:

     1.顯示adr_home


adrci> show homes
ADR Homes:
diag/tnslsnr/prodb/listener
diag/rdbms/prodb/prodb
diag/clients/user_oracle/host_3001804591_80

2.指定adr_home

adrci> set home diag/rdbms/prodb/prodb
adrci> show homes
ADR Homes:
diag/rdbms/prodb/prodb

 

3.顯示alter文件

adrci> show alert  #按q退出
adrci> show alert -tail 50   #顯示最後50行
adrci> show alert -tail 50   #tail -f alert_sid.log
adrci> show alert -p "message_text like '%ORA%'"

 

4.顯示告警事件

adrci> show incident
adrci> show incident -mode detail
adrci> show incident -mode detail -p "incident_id=123"

 

4.顯示問題

adrci> show problem

 

5.刪除10天前的incident 14400=60min*24*10

adrci> purge -age 14400 -type incident

 

生成診斷package

1)意外事件程序包是 ADR 中的一個邏輯結構,用於描述一個或多個問題。
2)程序包是一個 zip 文件,其中包含與某個意外事件程序包有關的轉儲信息。
3)默認情況下,一個意外事件程序包中只包含每個問題的前三個意外事件和後三個意外事件。
4)可以生成完整的 zip 文件,也可以生成增量 zip 文件。


1.創建邏輯包

adrci> ips create package incident 373
adrci> ips add incident 168 package 1

2.輸出物理包

adrci>ips generate package 1 in /home/oracle


其他的打包命令:

• IPS CREATE PACKAGE 用於創建空的程序包。
• IPS CREATE PACKAGE PROBLEMKEY 用於創建基於問題關鍵字的程序包。
• IPS CREATE PACKAGE PROBLEM 用於創建基於問題 ID 的程序包。
• IPS CREATE PACKAGE INCIDENT 用於創建基於意外事件 ID 的程序包。
• IPS CREATE PACKAGE SECONDS 用於創建包含從數秒前到現在爲止這個時間間隔內生成的所有意外事件的程序包。
• IPS CREATE PACKAGE TIME 用於創建基於指定時間範圍的程序包。也可以向現有程序包添加內容。例如:
• IPS ADD INCIDENT PACKAGE 用於將意外事件添加到現有程序包。
• IPS ADD FILE PACKAGE 用於將 ADR 中的文件添加到現有程序包。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章