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. c语言太easy笔误的,这将做

    调试发现时间写的一样NB代码 test.c int add(string); int main() { char* p = "11222"; add(p); return 0; } ...

  2. winXP JDK由1.8改为1.6

    (1)直接在环境变量中删除配置的相关路径 path的值: C:\Documents and Settings\Administrator>path PATH=C:\Documents and S ...

  3. Hibernate 配置详解(7)

    hibernate.order_updates: Hibernate文档中提到,该配置用于在刷新一级缓存,提交UPDATE的时候,按照每类对象的主键顺序排序后再提交,可以在高并发情况下减少事务死锁的可 ...

  4. 碎碎念,浅饮-------Day30

    这不是关于技术的文章,它偏离了我原来的计划轨迹.但,我相信这将是远远超出了技术的意义使我无论什么价格值. 高考已经开始,不知道在这片宁静的夜空下有多少人已经美美的睡了,香甜憨然.又有多少人这睡着的眼角 ...

  5. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第15章节--开发SP2013工作流应用程序 总结

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第15章节--开发SP2013工作流应用程序 总结         在SP2013中,工作流已经从SP Server中脱离 ...

  6. SSH协议详解(转)

    转发的http://blog.csdn.net/macrossdzh/article/details/5691924 很透彻啊,学习了 一.什么是SSH SSH是英文Secure Shell的简写形式 ...

  7. 【Android Training - UserInfo】记住登入用户的信息[Lesson 1 - 使用AccountManager来记住用户]

    Remembering Your User[记住你的用户] 每一个人都非常喜欢自己的名字能被人记住.当中最简单,最有效的使得你的app让人喜欢的方法是记住你的用户是谁,特别是当用户升级到一台新的设备或 ...

  8. C++出现计算机术语5

    class template(类模板) 可以用来定义一个类定义了一组特定类型的类的.类模板template keyword其次是尖括号(<>)附上.的列表来定义. export keywo ...

  9. 线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的使用方法

    线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的使用方法 注:使用结构CRITICAL_SECTION 需增加头文件#include “afxmt. ...

  10. GUI & Event例子

    Student No.: _______________ Name: ________________________________________1TK2934 Object-Oriented P ...