设为首页 加入收藏

TOP

初了解Oracle11g的AutomaticDiagnosticRepository新特性(一)
2015-07-24 11:48:05 来源: 作者: 【 】 浏览:4
Tags:了解 Oracle11g AutomaticDiagnosticRepository 特性

Oracle 11g之前,当数据库出现问题时,往往第一时间需要看alert日志,看看里面记录了哪些错误,可以给我们提示。alert文件名则

是alert_.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/

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇【ORACLE】分析oracle会话及性能.. 下一篇Oracle本地管理对比数据字典管理..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ 语言社区-CSDN社 (2025-12-24 17:48:24)
·CSDN问答专区社区-CS (2025-12-24 17:48:22)
·C++中`a = b = c`与` (2025-12-24 17:48:19)
·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)