Automatic Diagnostic Repository Command-Interpreter
ADRCI工具是Oracle11g才推出的新工具,主要用來管理alert文件、trace文件、dump文件、健康監事報告等。
11g中alert,trace文件的位置發生了變化, 從原來的ORACLE_BASE/admin/INSTANCE_NAME目錄變成了ORACLE_BASE/diag/rdbms/DBNAME/INSTANCE_NAME目錄。
Oracle之所以修改了這個跨越多個版本都沒有修改過的參數設置,就是因為Oracle在11g中推出了ADRCI。這個工具可以統一管理ASM實例和多個數據庫實例的alert文件、后臺trace文件、用戶trace文件,dump文件等等。
而且這個工具可以快速查詢錯誤相關的所有trace文件,并將這些文件打包到一個zip文件,以便將問題相關的信息提供給Oracle的技術支持。
下面是adrci 的一些快速學習的事項
0. 注意事項, 知識快速整理.
1. 定位problem,incident
2. 定位tracefile (user trace file, alert log file)
3. 生成package
0. 注意事項, 知識快速整理.
show alert -tail -f 相關操作的時候需要先 set home 因為adrci是多目錄操作不然會報錯 DIA-48449: Tail alert can only apply to single ADR home 這是為了保證在多實例下不至于造成混亂。adrci 也支持spooladrci 是基于一個叫做fault diagnosability infrastructure(錯誤診斷框架), 這樣一個底層框架的, 核心的思想就是, 通過problem和incident來定位錯誤。problem 和 incident 是一種相輔相成的關系, problem指的是大的問題,叫criticial error, 一個大問題會由很多小的incidents所導致。所以他們是1:n的關系.而problem 的數據都預先定義在v$diag_critical_error了(應該是,猜的)adrci> show incident ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ADR Home = /u01/app/oracle/diag/rdbms/opt/opt: ************************************************************************* INCIDENT_ID ? ? ? ? ?PROBLEM_KEY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CREATE_TIME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -------------------- ----------------------------------------------------------- ---------------------------------------- 121 ? ? ? ? ? ? ? ? ?ORA 4031 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2010-08-17 14:49:59.384000 +08:00 ? ? ? 209 ? ? ? ? ? ? ? ? ?ORA 4031 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2010-08-17 14:50:25.980000 +08:00 ? ? ? 2 rows fetchedadrci> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? adrci> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? adrci> show problem ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ADR Home = /u01/app/oracle/diag/rdbms/opt/opt: ************************************************************************* PROBLEM_ID ? ? ? ? ? PROBLEM_KEY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? LAST_INCIDENT ? ? ? ?LASTINC_TIME ? ? ? ? ? ? ? ? ? ? ? ? ? ? -------------------- ----------------------------------------------------------- -------------------- ---------------------------------------- 1 ? ? ? ? ? ? ? ? ? ?ORA 4031 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?209 ? ? ? ? ? ? ? ? ?2010-08-17 14:50:25.980000 +08:00 ? ? ? 1 rows fetched--- 很容易看到一個04031對應了: ?209,121,2個事件1. 如何identified 這以上的problem和incident的tracefile所在位置呢。
1. 先說problem, problem都是記錄在alert里的, 一般是放在$ORACLE_BASE/diag/rdbms/$DBNAME/$ORACLE_SID/trace/alert_SID.log, 可以手動去找, 不過adrci提供了更高效的方式, 直接吧04031那段記錄在TMP文件里。獲取的命令是:show alert -p "message_text like '%ORA-04031%'" #詳細 show problem -p "problem_id=1" # 看某一個problem2. incident 相關:# INCIDENT_FILE 顯示了tracefile的位置。 show incident -MODE DETAIL -p "incident_id=121"2. 定位tracefile (user trace file, alert log file)
# This example shows all trace files for incidents 1 and 4, under the path /home/steve/temp: show tracefile %mmon% -rt # This example shows all trace files for incidents 1 and 4, under the path /home/steve/temp: show tracefile -i 1 4 -path /home/steve/temp4. 生成 package
set homepath diag/rdbms/opt/opt 方法一 ips pack problem 1 方法二 # Created package 8 without any contents, correlation level typical ips create package Added problem 1 to package 8 ips add incident 121 package 8 ips add incident 209 package 8 ips add file /u01/app/oracle/diag/rdbms/opt/opt/trace/opt_dbrm_5035.trc ?package 8 ips generate package 8adrci> ips get metadata from file /home/oracle/script/IPSPKG_20110220163312_COM_1.zip ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IPS metadata from file /home/oracle/script/IPSPKG_20110220163312_COM_1.zip: ---------------------------------------------------------- <?xml version="1.0" encoding="US-ASCII"?> <PACKAGE><PACKAGE_ID>8</PACKAGE_ID><PACKAGE_NAME>IPSPKG_20110220163312</PACKAGE_NAME><MODE>Complete</MODE><SEQUENCE>1</SEQUENCE><LAST_COMPLETE>1</LAST_COMPLETE><DATE>2011-02-20 16:37:55.035301 +08:00</DATE><ADR_BASE>/u01/app/oracle</ADR_BASE><ADR_HOME>/u01/app/oracle/diag/rdbms/opt/opt</ADR_HOME><PROD_NAME>rdbms</PROD_NAME><PROD_ID>opt</PROD_ID><INST_ID>opt</INST_ID><OCM_GUID/><FINALIZED>1</FINALIZED> </PACKAGE>----------------------------------------------------------ips unpack file /home/oracle/IPSPKG_20090215012523_COM_1.zip into /home/oracle與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的Automatic Diagnostic Repository Command-Interpreter的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BAT脚本编写要点
- 下一篇: 导入导出 Oracle 分区表数据