您的位置:首页 > 其它

Automatic Diagnostic Repository Command-Interpreter

2013-05-28 16:28 471 查看
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,incident2. 定位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 也支持spool

adrci 是基于一个叫做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 fetched

adrci>
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" # 看某一个problem

2. 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/temp
4. 生成 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 8

adrci> 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

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: