9: Which statements are true regarding the creation of an incident package file by using the EM
Workbench Support? (Choose all that apply.)
选项
A.You can add SQL test cases to the incident package.
B.You can add or remove the trace files to the package.
C.You cannot create an incremental incident package when the physical files are purged from the
ADR.
D.You can create the incremental incident package ZIP file for new or modified diagnostic
information for the incident package already created.
Correct Answers: A B D

第一部分:(Automatic Diagnostic Repository)ADR

在oracle 11g中,你不能在目录$ORACLE_BASE/diag/rdbms/$INSTANCE_NAME/$ORACLE_SID/alert中直接读取alert日志。而是读取其中的log.xml文件。该文件不是文本文件。除了所有标准的数据库操作信息外,alert日志里也包含关于事件的信息。你也可以从目录 $ORACLE_BASE/diag/rdbms/$INSTANCE_NAME/$ORACLE_SID/trace中读取以前版本的alert日志。

problems和incidents (问题和事件)

围绕着oracle 11g错误诊断结构有两种新的概念:problems和incidents。

problems:

任何严重错误称之为problems,比如ORA-600错误,ORA-04031错误。所有涉及数据库problems的源数据都存储在ADR中。每一个问题分配一个关键字,以便于标识和描述问题。问题关键字包括oracle错误号和错误变量值。

incidents:

是一次问题的产生。一个问题可能会产生多次。每一次就是一个事件。每个事件有它自己的事件ID.
比如:

INCIDENT_ID    PROBLEM_KEY          CREATE_TIME
------------   ------------------   ---------------------------
8801           ORA 600 [4899]       27-MAR-07 06.14.41.04-05:00

当某一个事件产生时。在数据库里做三件事情:

  • 为该事件创建一个告警日志行并分配合适安全告警。
  • 在alert日志里创建相关条目。
  • 收集和存储诊断数据放置在ADR结构中合适子目录中。

不能够禁止自动创建严重错误事件。

事件在ADR中有保留策略:

事件元数据保留在ADR中默认一年。
  事件文件和dump保留在ADR中默认是一个月。
可以使用事件package configuration更改这些保留策略。后台进程MMON自动清洗过期的ADR数据。

incident packaging service:

在oracle 11g中,你可以使用IPS来搜寻关于某一个事件或错误的相关trace file,dump file和告警日志并将其打包成压缩文件。
这个特性称之为(incident packaging service)IPS。

ADR的结构和位置:

初始化参数diagnostic_dest指定了ADR的根目录。即使你忽略了该初始化参数。oracle也会创建ADR。
如果你设置了ORACLE_BASE环境变量,那么diagnostic_dest缺省值是该目录。如果你没有设置ORACLE_BASE变量,该参数值为$ORACLE_HOME/log目录。
   ADR存储所有oracle产品的诊断数据。ADR为每一个oracle产品及其实例分配一个单独的home目录。因此一个ADR目录包含多个home目录。
   每一个ADR的home目录是一个为每一个数据库实例或其它oracle产品或组件存储其诊断文件。其目录结构如下:

ADR_base/diag/product_type/product_id/instance_id/

比如一个 diagnostic_dest初始化参数为 /u05/app/oracle。那么一个oracle数据库的sid为prod1的home目录就如下所示:
   /u05/app/oracle/diag/rdbms/prod1/prod1/
  在一个ADR的home目录下有很多子目录:

  • alert:一个实例的告警日志文件(xml格式)。
  • cdump:core文件。
  • hm:健康检查报告。
  • incident:每一个事件一个子目录,其中包含所有trace dump文件。
  • incpkg:你创建的事件包,用于发给oracle支持所用。
  • ir:包含实例事件报告。
  • trace:存储回话trace文件。
    可以通过视图v$diag_info来查询目录及其位置:
    SQL> select name, value from v$diag_info;
    NAME                                    VALUE
    -------------------     ---------------------------
    Diag Enabled            TRUE
    ADR Base                /u01/app/oracle
    ADR Home                /01/app/oracle/diag/rdbms/prod/prod1
    Diag Trace              /u01/app/oracle/diag/rdbms/prod/prod1/trace
    Diag Alert              /u01/app/oracle/diag/rdbms/ prod/prod1/alert
    Diag Incident           /u01/app/oracle/diag/rdbms/prod/prod1/incident
    Diag Cdump              /u01/app/oracle/diag/rdbms/ prod/prod1/cdump
    Health Monitor          /u01/app/oracle/diag/rdbms/ prod/prod1/hm
    Default Trace File      /u01/app/oracle/diag/rdbms/ prod/prod1/
                            trace/eleven_ora_9417.trc
    Active Problem Count    3
    Active Incident Count   8

正如你所见,视图v$diag_info中包括问题和事件数量。

adrci接口:
oracle为我们提供了一个挖掘ADR里的诊断数据的接口,叫adrci。这个命令行工具提供很多丰富的功能,比如将问题和事件打包为一个zip文件发给oracle技术支持。这些被压缩的诊断数据包括trace及dump文件,alert log条目以及oracle 11g的健康监视报告。可以使用adrci的交互模式或使用操作系统的脚本批处理执行这些命令。

在oracle用户执行adrci

[oracle@node1 ~]$ adrci

ADRCI: Release 11.1.0.6.0 - Beta on Thu Apr 5 09:23:37 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

ADR base = "/home/oracle"
adrci>

输入帮助:
adrci> help

HELP [topic]
   Available Topics:
        CREATE REPORT
        ECHO
        EXIT
        HELP
        HOST
        IPS
        PURGE
        RUN
        SET BASE
        SET BROWSER
        SET CONTROL
        SET ECHO
        SET EDITOR
        SET HOMES | HOME | HOMEPATH
        SET TERMOUT
        SHOW ALERT
        SHOW BASE
        SHOW CONTROL
        SHOW HM_RUN
        SHOW HOMES | HOME | HOMEPATH
        SHOW INCDIR
        SHOW INCIDENT
        SHOW PROBLEM
        SHOW REPORT
        SHOW TRACEFILE
        SPOOL

There are other commands intended to be used directly by Oracle, type
 "HELP EXTENDED" to see the list

adrci>

查看home目录:

adrci> show home
ADR Homes: 
diag/tnslsnr/node1/listener
diag/clients/user_oracle/host_514214572_11
diag/rdbms/rac/rac
adrci>

为了在shell脚本中使用adrci,你可以使用命令行参数exec来调用adrci。比如:

adrci exec="command[; command]..."

例如你想在脚本里使用show homes和show incident,使用如下语法:

adrci exec="show homes; show incident"

[oracle@node1 ~]$ 
[oracle@node1 ~]$ adrci exec="show homes; show incident"
ADR Homes: 
diag/tnslsnr/node1/listener
diag/clients/user_oracle/host_514214572_11
diag/rdbms/rac/rac

ADR Home = /home/oracle/diag/tnslsnr/node1/listener:
*************************************************************************
0 rows fetched

ADR Home = /home/oracle/diag/clients/user_oracle/host_514214572_11:
*************************************************************************
0 rows fetched

ADR Home = /home/oracle/diag/rdbms/rac/rac:
*************************************************************************
0 rows fetched

[oracle@node1 ~]$

每一个命令必须使用分号隔开。
下面这个例子是使用ADR命令行去执行vi alert命令。

adrci exec="set homepath diag/rdbms/rac/rac;set editor vi;show alert"

另外,你还可以使用管道方式来封装一个shell脚本,比如下面这个例子是查看alert日志条目中包含ORA-的相关错误及其错误发生的时间。

adrci << EOF
set homepath diag/rdbms/rac/rac
set editor vi
show alert -p "message_text like '%ORA-%'"
EOF

比如使用如下命令查看所有ORA-错误:

adrci> set homepath diag/rdbms/rac/rac
adrci> set editor vi
adrci> show alert -p "message_text like '%ORA-%'"

ADR Home = /home/oracle/diag/rdbms/rac/rac:
*************************************************************************
Output the results to file: /tmp/alert_10191_1638_rac_1.ado

2012-03-29 20:56:12.266000 +08:00
ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...
2012-03-29 20:56:27.810000 +08:00
Errors in file /home/oracle/diag/rdbms/rac/rac/trace/rac_ora_10453.trc:
ORA-00313: ??????? 1 (???? 1) ???
ORA-00312: ???? 1 ?? 1: '/home/oracle/oradata/rac/redo01.log'
ORA-27037: ????????
Linux Error: 2: No such file or directory
Additional information: 3
Errors in file /home/oracle/diag/rdbms/rac/rac/trace/rac_ora_10453.trc:
ORA-00313: ??????? 2 (???? 1) ???
ORA-00312: ???? 2 ?? 1: '/home/oracle/oradata/rac/redo02.log'
ORA-27037: ????????
Linux Error: 2: No such file or directory
Additional information: 3
2012-03-29 20:56:29.286000 +08:00
Errors in file /home/oracle/diag/rdbms/rac/rac/trace/rac_ora_10453.trc:
ORA-00313: ??????? 3 (???? 1) ???
ORA-00312: ???? 3 ?? 1: '/home/oracle/oradata/rac/redo03.log'
ORA-27037: ????????
Linux Error: 2: No such file or directory
Additional information: 3
2012-03-29 21:04:31.458000 +08:00
ORA-1089 : opidrv aborting process J000 ospid (10641_3081467584)
2012-04-03 21:14:42.300000 +08:00
Errors in file /home/oracle/diag/rdbms/rac/rac/trace/rac_j008_6295.trc:
ORA-12012: error on auto execute of job 11689
ORA-01403: no data found

像vi编辑器一样退出后,可以在文件/tmp/alert_10191_1638_rac_1.ado中找到屏幕输出结果。便于分析,可见这个特性和unix中的grep |ORA-  命令是大不相同,因为后者只能输出错误行,但是错误行发生的时间却不能显示,而 show alert则同时显示错误和发生时间。

但是这里要注意:
如果执行如下命令,会让你选择home目录,比如:
adrci> show alert

Choose the alert log from the following homes to view:

1: diag/tnslsnr/node1/listener
2: diag/clients/user_oracle/host_514214572_11
3: diag/rdbms/rac/rac
Q: to quit

Please select option:

这里执行show alert时并没有指定home目录,而是直接在root目录环境下执行show alert命令,因此你需要指定home目录环境或者选择在哪个home目录环境下执行该命令:

而采用下面这种方式,就不需要选择home目录,因为已经明确指定home目录(注意这里set homepath不能指定绝对路径):
adrci> set homepath diag/rdbms/rac/rac
adrci> show alert -p "message_text like '%ORA-%'"

ADR Home = /home/oracle/diag/rdbms/rac/rac:
*************************************************************************
Output the results to file: /tmp/alert_10511_1638_rac_2.ado

2012-03-29 20:56:12.266000 +08:00
ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL...
2012-03-29 20:56:27.810000 +08:00
Errors in file /home/oracle/diag/rdbms/rac/rac/trace/rac_ora_10453.trc:
ORA-00313: ??????? 1 (???? 1) ???
ORA-00312: ???? 1 ?? 1: '/home/oracle/oradata/rac/redo01.log'
ORA-27037: ????????
Linux Error: 2: No such file or directory
Additional information: 3
Errors in file /home/oracle/diag/rdbms/rac/rac/trace/rac_ora_10453.trc:
ORA-00313: ??????? 2 (???? 1) ???
ORA-00312: ???? 2 ?? 1: '/home/oracle/oradata/rac/redo02.log'
ORA-27037: ????????
Linux Error: 2: No such file or directory
Additional information: 3
2012-03-29 20:56:29.286000 +08:00
Errors in file /home/oracle/diag/rdbms/rac/rac/trace/rac_ora_10453.trc:
ORA-00313: ??????? 3 (???? 1) ???
ORA-00312: ???? 3 ?? 1: '/home/oracle/oradata/rac/redo03.log'
ORA-27037: ????????
Linux Error: 2: No such file or directory
Additional information: 3
2012-03-29 21:04:31.458000 +08:00
ORA-1089 : opidrv aborting process J000 ospid (10641_3081467584)
2012-04-03 21:14:42.300000 +08:00
Errors in file /home/oracle/diag/rdbms/rac/rac/trace/rac_j008_6295.trc:
ORA-12012: error on auto execute of job 11689
ORA-01403: no data found
~

当然某些命令可以支持当前home目录为多个,比如show tracefile等:
当不指定homepath或指定多个homepath时,那么默认是显示所有当前homepath下的tracefile。如果你单独指定某一个homepath,那么该命令只显示当前homepath的tracefile。

有些命令不支持当前homepath为多个,如前面的show alert,又如下面的命令:
adrci> ips create package;
DIA-48448: This command does not support multiple ADR homes
adrci>

这个时候,你必须设置单个homepath以支持该命令:
drci> set homepath diag/rdbms/rac/rac
adrci> ips create package;
Created package 1 without any contents, correlation level typical

你也可以像sqlplus一样将命令显示结果传送到一个文件中,如下所示:

adrci> spool /u01/app/oracle/strip_alert.log
adrci> show alert
adrci> spool  off

显示事件:
adrci> show incident
ADR Home = C:\ORCL11\APP\ORACLE\DIAG\diag\rdbms\auxdb\auxdb:
**********************************************************************
0 incident info records fetched
ADR Home = C:\ORCL11\APP\ORACLE\DIAG\diag\rdbms\eleven\eleven:
**********************************************************************
INCIDENT_ID    PROBLEM_KEY                 CREATE_TIME
------------   --------------              ---------------------------
8801           ORA 600 [4899]              17-MAR-07 06.14.41.04-05:00
16417          ORA 7445 [ACCESS_VIOLATION] 17-MAR-07 06.15.46.7905:00
2 incident info records fetched
ADR Home = C:\ORCL11\APP\ORACLE\DIAG\diag\rdbms\orcl11\orcl11:
**********************************************************************
INCIDENT_ID          PROBLEM_KEY             CREATE_TIME
-------------------- --------------------  ---------------------------
113769               ORA 1578 [2] [66598]  27-MAR-07 10.00.10.91-05:00
113770               ORA 1578              27-MAR-07 10.00.11.86-05:00
113771               ORA 1578              27-MAR-07 10.00.12.10-05:00

3 incident info records fetched
adrci>

上面的结果显示分析如下:

数据库auxdb没有打开的事件,数据库eleven有两个打开的事件,数据库orcl11有三个打开的事件。

如果你想下钻到具体某一个事件的详细情况,可是使用如下命令:

adrci> show incident -mode detail -p "incident_id=113769"
...
----------------------------------------------------------
INCIDENT FILES:
   INCIDENT_ID        113769
   OWNER_ID           1
   BFILE              C:\ORCL11\APP\ORACLE\DIAG\diag\rdbms\orcl11\orcl1
                     \incident\incdir_113769/orcl11_j003_4244_i113769.trc
Incident file number: 1
----------------------------------------------------------
1 incident info records fetched
adrci>

show incident命令有两个选项,-p 和-mode。你可是使用-p来界定字段,该字段必须使用双引号界定。下面的命令显示了可以使用的字段名:

adrci> set homepath diag/rdbms/rac/rac
adrci> describe incident
Name                          Type            NULL?      
----------------------------- --------------- -----------
INCIDENT_ID                   number                     
PROBLEM_ID                    number                     
CREATE_TIME                   timestamp                  
CLOSE_TIME                    timestamp                  
STATUS                        number                     
FLAGS                         number                     
FLOOD_CONTROLLED              number                     
ERROR_FACILITY                text(10)                   
ERROR_NUMBER                  number                     
ERROR_ARG1                    text(64)                   
ERROR_ARG2                    text(64)                   
ERROR_ARG3                    text(64)                   
ERROR_ARG4                    text(64)                   
ERROR_ARG5                    text(64)                   
ERROR_ARG6                    text(64)                   
ERROR_ARG7                    text(64)                   
ERROR_ARG8                    text(64)                   
SIGNALLING_COMPONENT          text(64)                   
SIGNALLING_SUBCOMPONENT       text(64)                   
SUSPECT_COMPONENT             text(64)                   
SUSPECT_SUBCOMPONENT          text(64)                   
ECID                          text(64)                   
IMPACT                        number                     
adrci>

除了-p选项外,-mode选项有三个字段可用,分别是detail,basic,brief。后两者显示基本内容,不显示详细内容。

packaging incidents(打包事件)

oracle 11g的一个很强有力的工具是打包事件。利用这个打包事件压缩的文件夹提交给oracle的支持来帮助解决分析问题。
一旦你创建一个事件包,将添加一个或多个相关的问题到打包文件中。其中包括trace文件,dump文件等。
缺省情况下,每一个问题的事件包仅仅包括第一个和最后三个事件。事件包包含所有可以用于诊断的事件。也可以指定事件发生的时间或数

量范围来打包。

一旦你创建了事件包,那么你能添加或移除文件。
具体步骤如下:
1:创建一个逻辑包:使用命令是ips create package。该命令可以创建一个空包,也可以能会创建自动包含诊断数据的包。这个命令有很多

变量,你可以选择创建某一特定问题号,事件号,问题关键字,或基于期间的包。
2:添加诊断数据到逻辑包:这是一个可选步骤,如果你在第一步创建的是一个空包,那么你可以使用这一步骤添加诊断文件或数据。

3:产生zip文件:可以增量添加文件到zip文件里。

示例如下:
创建包:
adrci>ips create package
Created package 1 without any contents, correlation level typical
adrci>

添加诊断信息到空包中:
adrci>ips add incident 113769 package 1;
kaged: ADD INCIDENT
Cmd: --- incid 113769
Cmd: --- pkgid 1
adrci>

这一步仍然没有实际的诊断数据,你还需要执行第三部添加诊断元数据到包中。

adrci>ips generate package 4 in /u01/app/oracle/adrci/support
Cmd: GENERATE PACKAGE
Cmd: package id is 4
Cmd: file C:\ORCL11\APP\ORACLE
Cmd: --- mode full
adrci>

这个命令创建一个zip文件在/u01/app/oracle/adrci/目录中。这样创建的压缩文件称之为完全压缩文件。你也可以产生一个增量zip文件。
adrci> ips generate package 5 in /u01/app/oracle/adrci/support incremental

比如会产生以下两个文件:
ORA222_20070304124515_COM_1.zip
ORA222_20070304124515_INC_2.zip
第一个文件是完整zip文件,第二个是增量zip文件。

以下是ips命令的各种变种:
• ips create package                   creates an empty package.
• ips create package problem           creates a package based on a problem ID.
• ips create package problem key       creates a problem key–based package.
• ips create package incident          creates a package based on an incident ID.
• ips create package time              creates a package for a specified time range.

【OCP学习1z0-052记录13】【ORACLE 11G】 ADR之problems和incidents (问题和事件)相关推荐

  1. Oracle数据库学习(一):Oracle 11g数据库下载及安装

    1.1 Oracle 11g数据库下载 百度网盘:oracle11g安装包:https://pan.baidu.com/s/1eP2rxnDBI-GKb-7FEFUaMg 提取码:khrn 1.2 O ...

  2. oracle 11g 对不同平台搭建DG的支持和限制.

    使用DG来方式来做升级和迁移,转RAC, 是很常见的方式:通常有 升级:        先搭建一个同版本同平台DG,  停源库后,在DG做本地升级, 升级后搭建GG到源库,做回滚. 转RAC: 同平台 ...

  3. oracle 11g r2 价格,oracle 11gr2

    <Oracle 11g R2 DBA操作指南>是一本全面讲述Oracle 11g R2数据库系统管理的图书,之所以选择Oracle 11g R2这个版本是因为Oracle已经不再提供对Or ...

  4. 分享Oracle 11G OCP电子版教材(051,052,053)

    本人刚通过OCP认证,说句实在话,OCP涵盖的知识点还是很多的,掌握OCP教材中的知识点,对于日常基础的数据库运维管理工作绝对是游刃有余.Oracle 11G OCP电子教材分享地址:链接: http ...

  5. 菜鸟也来学习ORACLE(1)_linux下安装oracle 11g

    加入 oracle Club 之前,学长给我们开了个小会  说是看看我们加入的意愿,哎哎 其实直无聊,但是大体比较重视linux 服务器的搭建 以及在linux 下安装oracle 搭建一个oracl ...

  6. oracle数据库的model,Oracle 11g学习笔记–model子句

    Oracle 11g学习笔记–model子句 oracle 10g中新增的model子句可以用来进行行间计算.model子句允许像访问数组中元素那样访问记录中的某个列,这就提供了诸如电子表格计算之类的 ...

  7. oracle 11g dul,学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中

    试验模拟导出Oracle 11G数据库中数据文件坏块中表中的数据 以前一直以为dul对应的版本只能恢复最高的数据库版本一致,今天测试发现dul 10可以恢复11g最新版的数据库. 模拟环境SQL> ...

  8. Oracle 11g 学习笔记-14(数据库性能优化)

    1-熟悉几个常用的调优参数,并加以理解,结合实际项目运用.    Oracle 11g的初始化参数分为基本参数和高级参数两类.基本参数是一组可调整的参数,如CONTROL_FILES,DB_BLOCK ...

  9. 老方块 oracle培训,老方块Oracle 11g培训新版小学班 SQL 完整35课 星爷版 OCA OCP

    课程介绍 老方块Oracle 11g培训新版小学班 SQL 完整35课 星爷版 OCA OCP 课程目录 老方块ORACLE培训23班小学第1课 老方块ORACLE培训23班小学第2课 老方块ORAC ...

最新文章

  1. android 贝塞尔曲线点击区域,白话经典贝塞尔曲线及其在 Android 中的应用
  2. HttpClient和HttpURLConnection的使用和区别(上)
  3. C++xor cipher异或密码算法(附完整源码)
  4. 初始Windows程序
  5. javascript框架比较(三)
  6. 修改uid gid 的起始范围
  7. Labview自适应屏幕分辨率
  8. 【细胞分割】基于形态学算法实现红细胞计数matlab源码含 GUI
  9. debian7开机启动
  10. 手把手教你用Python分析微信聊天内容
  11. linux rstudio 中文乱码,谈谈R中的乱码(一)
  12. 解析改变测试自动化的协作机器人
  13. 希尔顿欢朋中国第200家酒店在杭州开业;玲娜贝儿在上海迪士尼全球首发亮相 | 全球旅报...
  14. 单元测试框架NUnit 之 constraints 约束
  15. 《海边的卡夫卡》书评
  16. RCA清洗系统及清洗液自适应预测温度控制
  17. 4A服务按库拆分|组件、服务|合并打包、独立打包(进行中)
  18. ADODB 入门(推荐)
  19. 如何取消wow3.0后与服务器设置的同步(设置、键位、宏)
  20. 【最新】2017年注册测绘师考试测绘案例分析历年真题及答案解析

热门文章

  1. event_dlist
  2. 《Java 编程思想》--第十九章:枚举类型
  3. 美团 mtgsig 1.0 版本
  4. 智慧工厂用到的技术_智慧工厂需要解决哪些问题及技术实现?
  5. 西门子usb ppi通讯电缆驱动
  6. 倒计时案例(时间戳)
  7. UML建模学习6:Class Diagram(一)
  8. Matlab findcircle函数实现 霍夫变换——检测圆
  9. Python使用open3d或matplotlib库实现显示深度3D效果图
  10. 友盟SDK升级(手动集成)