ADR(Automatic Diagnostic Repository)是一個基於文件的檔案庫,用於存放數據庫的診斷信息,例如跟蹤文件,意外dump文件,IPS包,警告日誌文件,健康監控報告,核心dump文件以及其它診斷信息。ADR的根目錄叫作ADR base, 位置經過參數DIAGNOSTIC_DEST設置。ADR擁有統一的目錄結構,在數據庫以外存儲多個產品和實例的診斷信息,所以即便在數據庫關閉時仍然能夠進行問題診斷。數據庫
從Oracle 11gR1 開始,ADR用於存儲數據庫,ASM,CRS和其它產品或組件(如listener)的診斷信息。每個實例或者產品擁有各自的ADR home路徑。例如在一個RAC環境下,ASM, 數據庫實例擁有單獨的ADR home。oracle
名詞解釋嚴重錯誤ide
(Critical Error)是指會產生跟蹤文件的Oracle內部錯誤。Oracle把他們劃分爲不一樣的類別,內部錯誤(ORA-600),系統訪問異常(ora-7445,ora-3113),鎖相關的錯誤,壞塊(ORA-1578)和內存不足(ORA-4030/4031)等。工具
事件ui
(Incident)是指一次嚴重錯誤,每出現一次嚴重錯誤,就會產生一次事件。ADR會跟蹤每個事件併產生惟一的事件ID。命令行
問題日誌
(Problem)是一組嚴重錯誤,他們擁有一組共同的屬性。ADR跟蹤每個問題,而且給每個問題產生一個惟一的問題ID.xml
改變blog
從11gR1開始,全部的診斷信息都保存在ADR中。ADR是一個外部的,迷你的XML數據庫。排序
跟蹤文件和進程的1:1對應再也不存在。雖然進程跟蹤文件仍然存在,可是它只記錄每一個事件的trc和trm文件的位置。Oracle爲每個事件產生一對兒文件——trc和trm文件。trc文件存放診斷信息,而trm文件存放元數據。
另外,文件的內部結構也發生了改變。例如一個XML格式的文件被引入,存放在ADR home的alert路徑下(ADR_BASE/diag/rdbms/<db_name>/<SID>/alert/log.xml)。trc文件由若干個標記過的XML記錄構成,每一個記錄都是分層排序過的。這種改變動加容易找到文件中咱們感興趣的部分的信息。
Diagnostic Frame Work(DFW)是如何工做的
1. 當一個嚴重錯誤發生時,DDE(diagnostic data extractor)被出發,並將相應的診斷信息寫入到事件跟蹤文件。
2. ADR中的診斷信息能夠經過ADRCI(命令行工具)或者SWB(Support WorkBench,圖形界面)被訪問。
3. 經過ADRCI或SWB從ADR中抽取診斷信息並建立包,這稱之爲事件打包服務(IPS)。查看診斷信息或上傳IPS包到MOS。IPS包包含對應事件的全部診斷信息。
使用ADRCI或SWB建立IPS包的步驟
ADRCI
1. 進入ADRCI
# adrci
2. 顯示存在的ADR home
adrci>show home
4. 設定ADR home
adrci>set home
5. 顯示全部問題
adrci>show problem
6. 顯示全部事件
adrci>show incident
7. 打包事件的診斷信息
adrci>ips pack incident <incident id>
SWB
1. 登陸到企業管理器
2. 單擊連接‘support workbench’
3. 選擇‘all active’的問題
4. 單擊‘問題id’查看對應的事件
5. 選擇相應的事件
6. 單擊 ‘quick package’
7. 輸入包名,描述信息,選擇是否上傳到oracle support
8. 查看包中的信息
9. 選擇‘當即’建立包,並單擊按鈕‘submit’