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 也支持spool

adrci 是基于一个叫做fault diagnosability infrastructure(错误诊断框架), 这样一个底层框架的, 核心的思想就是, 通过problemincident来定位错误。

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对应了:  2091212个事件

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值