先学习Oracle 11g的Automatic Diagnostic Repository新功能
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日志,内容是文本格式的。能够直接打开查看:
从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,能够用例如以下命令查看详细的信息:
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新功能的更多相关文章
- Oracle 11g系统分区表中的新功能
在11g有一个新的特点是分区表系统.下面做一个实验: SQL> select * from v$version; BANNER --------------------------------- ...
- Automatic Diagnostic Repository
转载自 http://www.eygle.com/archives/2007/08/11g_auto_diag_repository.html#comments Oracle Database 11g ...
- Oracle 11g 中SQL性能优化新特性之SQL性能分析器(SQLPA)
Oracle11g中,真实应用测试选项(the Real Application Testing Option)提供了一个有用的特点,叫SQL性能分析器(SQL Performance Analyze ...
- 学习笔记: ES7(ES2016)新功能
ES7添加了两个新功能 : 1. Array.prototype.includes() 2. 指数运算符 1 .Array.prototype,includes() 判断指定的元素是否存在于数组中, ...
- Oracle 11g新特性
文章转自网络 Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(I ...
- Oracle 11g Articles
发现一个比较有意思的网站,http://www.oracle-base.com/articles/11g/articles-11g.php Oracle 11g Articles Oracle Dat ...
- Oracle 10g AND Oracle 11g手工建库案例--Oracle 11g
Oracle 10g AND Oracle 11g手工建库案例--Oracle 11g 系统环境: 操作系统: RedHat EL6 Oracle: Oracle 10g and Oracle 11 ...
- Oracle 11g
Oracle 11g 第一章 Oracle 11g数据库简介 1.1 认识Oracle11g Oracle 11g是Oracle 数据库最新的版本,目前已经被企业广泛的应用. 1.2 Oracl ...
- 使用Oracle 11g新特性 Active Database Duplication 搭建Dataguard环境
Duplication Database 介绍 Duplicate database可以按照用途分为2种: duplicate database(复制出一个数据库) duplicate standby ...
随机推荐
- EF中的事务处理的初步理解
http://yanwushu.byethost7.com/?p=87 1. EF对事务进行了封装:context的saveChange()是有事务性的. 2. 依赖多个不同的Context的操作(即 ...
- poj3662(二分+最短路)
题目连接:http://poj.org/problem?id=3662 题意:有n个节点p条无向边,现在可以选择其中的任意K条免费,则花费为除了k条边后权值最大的一个,求最小花费多少. 分析:二分枚举 ...
- Unity3d之MiniJson与LitJson之间的较量
由于项目不得不用到json来解析服务器端传来的数据,于是不得不选择一种在unity3d上面可用的json.开始根据网上推荐LitJson,于是下载下来源码,导入项目: 经过测试可以用:但是移植到ipa ...
- 【Python】Coding the Matrix:Week 5 Perspective Lab
这个Lab的内容光是说明就有7页之巨,我反复看了很久才看懂一点点,Lab主要完成的是从不同坐标系表示之间变换的方法. 原始的图片,从Camera basis的表示转换成WhiteBoard basis ...
- SE 2014年4月12日
BGP基础实验 拓扑 步骤: 1. 完成基本的配置 2. 按照需求自治系统AS 100 全网运行OSPF 单区域 3. 完成BGP基本配置 [RT2]bgp 100 [RT2-bgp]peer 67. ...
- LVS+Keepalived实现高可用负载均衡(转)
LVS+Keepalived实现高可用负载均衡 一.原理 1.概要介绍 如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具 ...
- WPF界面设计技巧(10)-样式的继承
原文:WPF界面设计技巧(10)-样式的继承 PS:现在我的MailMail完工了,进入内测阶段了,终于可以腾出手来写写教程了哈,关于MailMail的介绍及内测程序索取:http://www.cnb ...
- JDBC数据库编程常用接口(转)
JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现.这东西能够 ...
- Eclipse常用热键
,Ctrl+D 删除选中的几行 ,Alt+上下箭头 移动选中的代码块 ,Alt+左右箭头 回退 前进 ,Alt+Shift+上下箭头 复制选中的代码块 ,sysout+Ctrl space 生成Sys ...
- 辛星分析html中间name和id
差额
朋友们可以新手也能很容易区分id和class,但不一定很容易区分id和name,以下说一下二者的差别和联系. 首先是联系,它们都能够用来标记一个元素,并且能够用JavaScript来操作,可是操作方法 ...