原文链接:http://www.dbaleet.org/collect_exadata_diagnostic_info_via_ips/
IPS是Incident Packaging Service的简称,即事件打包服务。在此之前,能提供打包服务的一般是物流公司,例如Fedex或者UPS。从Oracle 11g开始,Oracle也介入这个行业与他们开始正面竞争了。
事件打包服务是FDI(Fault Diagnosability Infrastructure)故障诊断基础架构中的一项技术, 属于ADR的一部分。IPS可以针对某一特定错误或故障相关的数据进行打包,一次性收集诊断此问题需要的日志,例如traces, dumps, health check reports等,免去多次索要和提供日志之苦。Just wait for 1 minutes. 收集日志我用diagcollection.pl脚本不就行了么?何苦还需要另外学习收集日志方式? diagcollection.pl一般用于收集集群某个特定时间段的信息,或者某种特定类型的日志,例如chm;而IPS通常使用来收集数据库或者cell软件的诊断信息,例如可以用它来针对某一错误进行日志收集,例如ORA-00600,这两者并不冲突并且可以互补。
在Exadata上除了可以使用IPS收集DB节点的日志信息,还可以使用它来收集Cell节点的日志信息。DB节点的收集方式同样可以用于非Exadata的数据库,Cell节点的收集方式仅用于Exadata。以下分别讲述如何在DB节点和Cell节点使用IPS收集日志信息。我这里并不打算介绍所有的IPS的特性,仅仅只是针对某一错误进行日志收集。
DB节点:
-
-
-
- 进入adrci界面:
$adrci adrci> help ips HELP IPS [topic] Available Topics: ADD ADD FILE ADD NEW INCIDENTS CHECK REMOTE KEYS COPY IN FILE COPY OUT FILE CREATE PACKAGE DELETE PACKAGE FINALIZE PACKAGE GENERATE PACKAGE GET MANIFEST GET METADATA GET REMOTE KEYS PACK REMOVE REMOVE FILE SET CONFIGURATION SHOW CONFIGURATION SHOW FILES SHOW INCIDENTS UNPACK FILE USE REMOTE KEYS
- 设置ADR HOME:
adrci> show home adrci> set homepath /u01/app/
oracle/diag/rdbms/dbm/dbm1/ - 查看问题:
adrci> show problem ADR Home = /u01/app/oracle/diag/rdbms/dbm/dbm1: ************************************************************************* PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME -------------------- ----------------------------------------------------------- -------------------- ---------------------------------------- 1 ORA 7445 [kfkrqDump()+30] 1964325 2012-09-23 23:35:08.763000 +08:00 1 rows fetched adrci> show incident -p "problem_key='ORA 7445 [kfkrqDump()+30]'" ADR Home = /u01/app/oracle/diag/rdbms/dbm/dbm1: ************************************************************************* INCIDENT_ID PROBLEM_KEY CREATE_TIME -------------------- ----------------------------------------------------------- ---------------------------------------- 1964325 ORA 7445 [kfkrqDump()+30] 2012-09-23 23:35:08.763000 +08:00 1 rows fetched
- 生成此问题的IPS包:
- 进入adrci界面:
-
-
adrci> ips pack incident 1964325 in /u01/app/oracle/admin Generated package 3 in file /u01/app/oracle/admin/ORA7445kf_20120924090018_COM_1.zip, mode complete
DB节点的一个IPS包就生成好了。
Cell节点:
Cell节点的IPS与DB节点的IPS差异并不大,但是它会额外收集以下信息:
1. Restart Server trace文件:rstrc_<pid>_<tid>.tr*
2. Cell Server trace文件: svtrc_<pid>_<tid>.tr*
3. Management Server trace文件
4. ms-odl.log文件
5. Cell的alert log文件
以下演示如何在Cell节点上使用IPS收集Cell的诊断信息:
- 检查环境:
# env |grep ADR ADR_BASE=/opt/oracle/cell11.2.2.2.0_LINUX.X64_101206.2/log # which adrci /opt/oracle/cell11.2.2.2.0_LINUX.X64_101206.2/cellsrv/bin/adrci # which celldiag.pl /opt/oracle/cell11.2.2.2.0_LINUX.X64_101206.2/cellsrv/bin/celldiag.pl
- 查看事件信息
#/opt/oracle/cell11.2.2.2.0_LINUX.X64_101206.2/cellsrv/bin/adrci adrci> set homepath diag/asm/cell/dmorlx8cel06 adrci> show problem ADR Home = /opt/oracle/cell11.2.2.2.0_LINUX.X64_101206.2/log/diag/asm/cell/dmorlx8cel06: ************************************************************************* PROBLEM_ID PROBLEM_KEY INCIDENT LASTINC_TIME -------------------- ----------------------------------------------------- 1 RS 7445 1 2011-01-12 18:09:16.759000 -05:00 1 rows fetched adrci> show incident -p "problem_key='RS 7445'" ADR Home = /opt/oracle/cell11.2.2.2.0_LINUX.X64_101206.2/log/diag/asm/cell/dmorlx8cel06: ************************************************************************* INCIDENT_ID PROBLEM_KEY CREATE_TIME -------------------- ------------------------------------------------- 1 RS 7445 2011-01-12 18:09:16.759000 -05:00 1 rows fetched
- 收集错误信息:
adrci> ips pack incident 1 in /tmp/ diag/asm/cell/dmorlx8cel06 Generated package 1 in file /tmp/RS7445_20110805074355_COM_1.zip, mode complete
当在Exadata上运行IPS的时候, 系统会自动检查celldiag.pl脚本是否存在, 如果这个脚本存在,那么IPS会在ADR的输出中放入这个脚本的输出,并且调用这个目录作为一个它的参数使用。celldiag.pl调用的语法如下:
./celldiag.pl -adr <file_destination> -aftertime <start_time> -beforetime <end_time> -level typical
用户可以手工执行这个脚本:
# /opt/oracle/cell11.2.2.2.0_LINUX.X64_101206.2/cellsrv/bin/celldiag.pl -adr /tmp/adrci -aftertime 201101120000 -beforetime 20110130000 -level all
这个脚本主要收集一些系统信息:例如meminfo, cpuinfo,/var/log/messages 以及一些ADR中不存在的trace文件(ms.err, oss<pid>.trc)。
收集完以后,就可以把上述使用IPS生成的zip包上传到MOS对应的SR中供Oracle Support分析。
以上
Comment