Oracle 11g之前。当数据库出现故障,通常情况下,第一次需要看alert刊物。什么,看看哪些记录错误,您可以给我们的提示。alert文件名

是alert_<ORACLE_SID>.log,文件存储路径由參数background_dump_dest决定,比如:

SQL> show parameter background_dump_dest

NAME                                            TYPE         VALUE

------------------------------------ ----------- ------------------------------

background_dump_dest                 string        /opt/app/ora10g/admin/petest/bdump

能够知道alert日志就保存在/opt/app/ora10g/admin/petest/bdump路径下。

比如例如以下这个log后缀的alert日志,内容是文本格式的。能够直接打开查看:

-rw-r-----. 1 oracle root 1.8G Jun 21 19:30 alert_bisal.log

从Oracle 11g開始。alert除了文本格式。还提供了xml格式的,且日志路径有所变化。

假设设置了參数diagnostic_dest。则原来的

background_dump_dest等路径将失效。

Oracle 11g提供的新特性“自己主动诊断库(Automatic Diagnostic Repository, ADR)”的目

录就是通过这个參数设置的,这个文件夹下存放的是数据库诊断日志、跟踪文件等之前分布于bdump、cdump等路径中的文件,这个

文件夹通常称为ADR base。比如:

SQL> show parameter diag

NAME                                     TYPE        VALUE

------------------------------------ ----------- ------------------------------

diagnostic_dest                        string       /home/oracle

diagnostic_dest的缺省值还和环境变量ORACLE_BASE有关,比如:

>假设设置了ORACLE_BASE,则diagnostic_dest = $ORACLE_BASE

>假设未设置ORACLE_BASE,则diagnostic_dest
= $ORACLE_HOME/log

依据eygle的介绍,11g将环境变量ORACLE_BASE引入到了数据库内部,使用隐含參数记录:

SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.KSPPDESC PDESC

FROM   SYS.x$ksppi
x, SYS.x$ksppcv y

WHERE
 x.indx = y.indx AND x.ksppinm LIKE '%&par%';

NAME             VALUE        
      PDESC

--------------- ----------------- ------------------

_oracle_base    /home/oracle  
 ORACLE_BASE

注意这里SQL的输入的是小写oracle_base。

能够使用v$diag_info查看ADR信息:

SQL> select * from v$diag_info;

INST_ID NAME                      VALUE

---------- ------------------------- -------------------------

1 Diag Enabled                TRUE

1 ADR Base                     /home/oracle

1 ADR Home                   /home/oracle/diag/rdbms/galt/galt

1 Diag Trace                   /home/oracle/diag/rdbms/galt/galt/trace

1 Diag Alert                    /home/oracle/diag/rdbms/galt/galt/alert

1 Diag Incident               /home/oracle/diag/rdbms/galt/galt/incident

1 Diag Cdump                /home/oracle/diag/rdbms/galt/galt/cdump

1 Health Monitor             /home/oracle/diag/rdbms/galt/galt/hm

1 Default Trace File         /home/oracle/diag/rdbms/galt/galt/trace/galt_ora_8970.trc

1 Active Problem Count   1

1 Active Incident Count    50

11 rows selected.

当中Diag Alert保存的是xml格式的alert日志。Diag Trace保存的是文本格式的alert日志。

还提供了一个新工具ADRCI(ADR Command Interpreter)。说是用于管理诊断数据,友好阅读xml格式的日志,但这里我还没搞清楚为什么须要xml格式的日志,请高手不吝赐教。

命令行中输入adrci就能够登录了,比如:

[oracle@riserver2 diag]$ adrci

ADRCI: Release 11.2.0.1.0 - Production on Sat Jun 21 18:51:31 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/home/oracle"

adrci>

使用show alert能够选择须要查看的日志文件:

adrci> show alert

Choose the alert log from the following homes to view:

1: diag/tnslsnr/riserver2/listener

2: diag/rdbms/galt/galt

Q: to quit

Please select option:

接下来就是为什么要有ADR?

ADR是将各类跟踪文件、日志文件的存储进行统一。不会像之前须要不同文件时要到不同文件夹中查找。有时还得看看參数设置到哪

些路径下了。Oracle 11g提出了FDI,故障诊断基础框架,Fault Diagnosability Infrastructure。宗旨就是简化用户的数据库出现

故障时向Oracle请求协助须要重复交互的过程。曾经用户须要依据Oracle的要求,不断重复交互,收集数据。再反馈Oracle,才干

解决SR。通过FDI,可能会提高故障分析解决的效率。(由于我还没提过。所以不知道是否真的节省了成本?)

FDI的核心组件是ADR,相关的日志文件进行了归类汇总都存储于ADR之下。同一时候使用IPS,事件打包服务,Incident Packaging

Service,能够将相关的数据、日志文件打包压缩。然后用户将这个文件传给Oracle诊断。

比如:

adrci> show incident

ADR Home = /home/oracle/diag/tnslsnr/riserver2/listener:

*************************************************************************

0 rows fetched

ADR Home = /home/oracle/diag/rdbms/galt/galt:

*************************************************************************

INCIDENT_ID          PROBLEM_KEY              CREATE_TIME

-------------------- ------------------------ ----------------------------------------

129708               ORA 4030                         2014-06-21 05:35:06.727000 +08:00

129709               ORA 4030                         2014-06-21 05:35:15.598000 +08:00

129710               ORA 4030                         2014-06-21 05:35:23.600000 +08:00

129711               ORA 4030                         2014-06-21 05:35:31.526000 +08:00

129712               ORA 4030                         2014-06-21 05:35:39.611000 +08:00

5 rows fetched

能够看到这里有5次INCIDENT,能够用例如以下命令查看详细的信息:

adrci> show incident -mode DETAIL -p "incident_id=129708";

ADR Home = /home/oracle/diag/tnslsnr/riserver2/listener:

*************************************************************************

0 rows fetched

<INCIDENT_INFO mode="detail">

<ADR_HOME name="/home/oracle/diag/tnslsnr/riserver2/listener">

ADR Home = /home/oracle/diag/rdbms/galt/galt:

*************************************************************************

**********************************************************

INCIDENT INFO RECORD 1

**********************************************************

   INCIDENT_ID                   129708

   STATUS                           ready

   CREATE_TIME                   2014-06-21 05:35:06.727000 +08:00

   PROBLEM_ID                    1

   CLOSE_TIME                    <NULL>

   FLOOD_CONTROLLED       none

   ERROR_FACILITY             ORA

   ERROR_NUMBER               4030

   ERROR_ARG1                   832

   ERROR_ARG2                   callheap

   ERROR_ARG3                   temporary memory

   ERROR_ARG4                    <NULL>

   ERROR_ARG5                    <NULL>

   ERROR_ARG6                    <NULL>

   ERROR_ARG7                    <NULL>

   ERROR_ARG8                    <NULL>

   ERROR_ARG9                    <NULL>

   ERROR_ARG10                   <NULL>

   ERROR_ARG11                   <NULL>

   ERROR_ARG12                   <NULL>

   SIGNALLING_COMPONENT          <NULL>

   SIGNALLING_SUBCOMPONENT    <NULL>

   SUSPECT_COMPONENT               <NULL>

   SUSPECT_SUBCOMPONENT         <NULL>

   ECID                                 <NULL>

   IMPACTS                           0

   PROBLEM_KEY                   ORA 4030

   FIRST_INCIDENT               129708

   FIRSTINC_TIME                 2014-06-21 05:35:06.727000 +08:00

   LAST_INCIDENT                129757

   LASTINC_TIME                  2014-06-21 05:35:52.409000 +08:00

   IMPACT1                           34668547

   IMPACT2                           34668546

   IMPACT3                           0

   IMPACT4                           0

   KEY_NAME                        ProcId

   KEY_VALUE                       2.1

   KEY_NAME                        Client ProcId

   KEY_VALUE                       oracle@riserver2.3005_140012269696768

   KEY_NAME                        SID

   KEY_VALUE                       383.1

   OWNER_ID                        1

   INCIDENT_FILE                  /home/oracle/diag/rdbms/galt/galt/trace/galt_pmon_3005.trc

   OWNER_ID                        1

   INCIDENT_FILE                  /home/oracle/diag/rdbms/galt/galt/incident/incdir_129708/galt_pmon_3005_i129708.trc

1 rows fetched

能够看到文件夹下有异常事件的跟踪信息:

[oracle@riserver2 diag]$ cd /home/oracle/diag/rdbms/galt/galt/incident/incdir_129708/

[oracle@riserver2 incdir_129708]$ ls -l

total 7408

-rw-r-----. 1 oracle root 7561282 Jun 21 05:35 galt_pmon_3005_i129708.trc

-rw-r-----. 1 oracle root   19034 Jun 21 05:35 galt_pmon_3005_i129708.trm

以下就使用IPS进行打包:

adrci> set homepath diag/rdbms/galt/galt

adrci> ips create package incident 129708

Created package 1 based on incident id 129708, correlation level typical

adrci> ips generate package 1 in /home/oracle/diag

Generated package 1 in file /home/oracle/diag/ORA4030_20140621184527_COM_1.zip, mode complete

Additional incremental files:

/home/oracle/diag/ORA4030_20140621184527_INC_2.zip

解压缩这两个文件能够看到像alert日志等都打进来了,这里两文件压缩后是17MB左右,但alert日志就有1.7GB。所以压缩效率还非常高。

版权声明:本文博主原创文章。博客,未经同意不得转载。

先学习Oracle 11g的Automatic Diagnostic Repository新功能的更多相关文章

  1. Oracle 11g系统分区表中的新功能

    在11g有一个新的特点是分区表系统.下面做一个实验: SQL> select * from v$version; BANNER --------------------------------- ...

  2. Automatic Diagnostic Repository

    转载自 http://www.eygle.com/archives/2007/08/11g_auto_diag_repository.html#comments Oracle Database 11g ...

  3. Oracle 11g 中SQL性能优化新特性之SQL性能分析器(SQLPA)

    Oracle11g中,真实应用测试选项(the Real Application Testing Option)提供了一个有用的特点,叫SQL性能分析器(SQL Performance Analyze ...

  4. 学习笔记: ES7(ES2016)新功能

    ES7添加了两个新功能 : 1. Array.prototype.includes() 2. 指数运算符 1 .Array.prototype,includes() 判断指定的元素是否存在于数组中,  ...

  5. Oracle 11g新特性

    文章转自网络 Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(I ...

  6. Oracle 11g Articles

    发现一个比较有意思的网站,http://www.oracle-base.com/articles/11g/articles-11g.php Oracle 11g Articles Oracle Dat ...

  7. Oracle 10g AND Oracle 11g手工建库案例--Oracle 11g

    Oracle 10g AND Oracle 11g手工建库案例--Oracle 11g 系统环境: 操作系统: RedHat EL6 Oracle:  Oracle 10g and Oracle 11 ...

  8. Oracle 11g

    Oracle 11g 第一章  Oracle 11g数据库简介 1.1  认识Oracle11g Oracle 11g是Oracle 数据库最新的版本,目前已经被企业广泛的应用. 1.2  Oracl ...

  9. 使用Oracle 11g新特性 Active Database Duplication 搭建Dataguard环境

    Duplication Database 介绍 Duplicate database可以按照用途分为2种: duplicate database(复制出一个数据库) duplicate standby ...

随机推荐

  1. FZU2181+poj2942(点双连通+判奇圈)

    分析:我们对于那些相互不憎恨的人连边,将每次参加会议的所有人(不一定是全部人,只需人数>=3且为奇数)看做一个点双联通分量,那么每个点都至少有两个点与他相邻.即需要保证双联通分量中存在奇圈.至于 ...

  2. 【ASP.NET】验证控件

    在软件开发中,验证输入信息是否正确,这是不可缺少的一项工作.就拿我们做过的机房收费系统来说,在登录的时候,我们须要对username和用户password进行验证.推断是否为空,推断输入字符是否合理等 ...

  3. gulp快速入门

    gulp快速入门 因为之前一直有人给我推荐gulp,说他这里好哪里好的.实际上对我来说够用就行.grunt熟悉以后实际上他的配置也不难,说到效率的话如果真是要完整打包上线也不在乎那么几秒时间,对于项目 ...

  4. SQL Syscolumns

    每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.该表位于每个数据库中. 列名 数据类型 描述 name sysname 列名或过程参数的名称. id int 该列所属的表对象 I ...

  5. SE 2014 年4月21日(二)

    实验练习: 如图配置: 两BGP自治系统,要求建立相关BGP邻居关系 1. 建立BGP邻居关系 要求使用BGP对等体组完成(IBGP要求使用loopback接口作为TCP建立的源接口) 2. R3 R ...

  6. MySQL中Procedure事务编写基础笔记

    原文:MySQL中Procedure事务编写基础笔记 目录: 一.PROCEDURE: 二.CREATE PROCEDURE基本语法: 三.PROCEDURE小进阶   3.1.基本的DECLARE语 ...

  7. PHP实现栈(Stack)数据结构

    栈(Stack),是一种特殊的后进先出线性表,其只能在一端进行插入(插入一般称为压栈.进栈或入栈)和删除(删除一般称为弹栈.退栈或出栈)操作,允许进行插入和删除操作的一端称为栈顶,另一端则称为栈底.栈 ...

  8. 去掉windows文件末尾的^M: %s/\r//g

    去掉windows文件末尾的^M: %s/\r//g

  9. openstack之nova-api服务流程分析

    nova-api公布api服务没实用到一个些框架,基本都是从头写的.在不了解它时,以为它很复杂,难以掌握.花了两三天的时间把它分析一遍后,发现它本身的结构比較简单,主要难点在于对它所使用的一些类库不了 ...

  10. 天嵌E9平台下进行USB Wifi模块RT3070驱动的移植

    因为项目工作须要,要在天嵌E9平台下实现wifi的点对点,点对多点的传输. Wifi 模块芯片:雷凌3070芯片 嵌入式平台:E9(ARM) 交叉编译环境:arm-none-linux-gnueabi ...