11g中ADR管理下的监听trace文件路径问题

一个11g的开发库,打算打开sqlplus的trace,看下sqlplus登录的连接信息,但配置sqlnet.ora后没有找到trace文件,后来有一天发现磁盘空间不足,经过查询后发现如下路径下有几千个文件,占用了上G的空间:

/u01/app/oracle/11.2.0.4/diag/clients/user_oracle/host_1347578259_80/trace

这些文件是什么?打开一个,发现都是监听sqlpuls登录的信息,即trace文件:

那么为什么这个trace文件在这个路径中?

经@Yong Huang提醒,原来这个问题和11g的ADR设置有关,下面是ADR的官方介绍:

The Automatic Diagnostic Repository (ADR) is a file-based repository for database
diagnostic data such as traces, dumps, the alert log, health monitor reports, and more.
It has a unified directory structure across multiple instances and multiple products.
Beginning with release 11g, the database, Oracle Automatic Storage Management (Oracle
ASM), and other Oracle products or components store all diagnostic data in the ADR. Each
instance of each product stores diagnostic data underneath its own ADR home directory
(see “ADR Home”). For example, in an Oracle Real Application Clusters (Oracle RAC)
environment with shared storage and Oracle ASM, each database instance and each Oracle
ASM instance has a home directory within the ADR. The ADR’s unified directory structure
enables customers and Oracle Support to correlate and analyze diagnostic data across
multiple instances and multiple products.

自动诊断库(ADR)是一个基于文件的数据库诊断数据存储库,保存了trace、dump、alert log、health监控报告等等。对于多个实例和多个产品,都有一个统一的目录结构。11g开始,像Oracle ASM还有其他的Oracle产品或组件的诊断数据都会存储在ADR中。每个产品实例都在他自己的ADR根目录下存储诊断数据。ADR统一目录结构能让客户和Oracle支持将不同实例和不同产品的诊断数据关联起来进行分析。

MOS上的这篇文章说明了sqlnet.ora配置后,trace文件如何存放的问题:

NET Client Traces Generated In $ADR_BASE/oradiag_/diag/clients/ Directory (文档 ID 1545533.1)

大义就是如果配置了

ADR_BASE=ADR base location

则trace文件会自动存储在如下路径中:

$ADR_BASE/oradiag_OS user/diag/clients/..

否则就会存储在:

$ADR_BASE/diag/clients/...

实验:
1. 数据库版本

2.配置sqlnet.ora打开客户端trace

3.这里我没有配置ADR_BASE,只是在listener.ora中配置了ADR_BASE_LISTENER

4.执行一个错误的连接,以让其产生trace文件

5.由于没有设置ADR_BASE,应该不会有oradiag_OSuser路径,但会有diag路径,此时查看

确实在这个路径下生成了trace文件。

注意:
如果开启了sqlplus客户端trace,那么需要关注trace文件所占用空间的使用情况,避免撑爆文件系统,建议使用时开启,用完后需要立即关闭。

时间: 2024-09-20 12:21:33

11g中ADR管理下的监听trace文件路径问题的相关文章

sql server 警报管理,实时监听数据库动向,运筹帷幄之中

原文:sql server 警报管理,实时监听数据库动向,运筹帷幄之中 工作这么多年了,无论是身边的同学还是同事,发现只要搞程序员的都有一个通病---懒.懒到谁都不愿意加班,尤其是"义务"加班.即使大家都不愿意加班,但是很多时候项目赶着上线或者上线之后出错啊什么的,总得有人看着,这时候就诞生了一种新的工作制度,叫做7*24.顾名思义就是这种岗位实时都得有人看着,这确实是一件让人头疼的事情.虽然说在项目刚上线不可避免的得有7*24,但是我们可以尽量减少7*24的工作量(ps:因为7*24

横向滑动-Android中用首字母排序的listview中的item的滑动监听与listview的上下滑动冲突

问题描述 Android中用首字母排序的listview中的item的滑动监听与listview的上下滑动冲突 大神帮看看,我现在listview的item中我写了一个OnTouchListener,但是发现横向滑动的时候老是会触发listview的上下滑动事件,导致横向滑动很难滑出来,但是滑出来第一次后,后面就很容易划出来了!大神帮忙看看!!!感谢! 让人很是苦恼,这个该怎么处理呢?查过资料说改返回值为false,改了都滑不出来! /** * 侧滑显示删除按钮 */ private View.

NodeJS Web应用监听sock文件实例

 这篇文章主要介绍了NodeJS Web应用监听sock文件实例,本文讲解 NodeJS 的 TCP 和 HTTP 监听 Domain Socket 文件例子,需要的朋友可以参考下     像 NodeJS 写的 TCP 服务可以监听在某个 sock 文件(Domain Socket) 上,它的 HTTP 服务也能这么干.虽然作为 HTTP 服务连接某个 sock 文件的意义不大,所以这里只算是一个纯粹的尝试. TCP 服务是这样写 代码如下: var net = require('net');

ORACLE清理、截断监听日志文件(listener.log)

       在 ORACLE数据库中,如果不对监听日志文件(listener.log)进行截断,那么监听日志文件(listener.log)会变得越来越大,想必 不少人听说过关于"LISTENER.LOG日志大小不能超过2GB,超过会导致LISTENER监听器无法处理新的连接",当然这个不是真理,不会绝对 出现,只是发生在老旧的32bit Linux或Unix系统下面,真实的原因是一些32bit OS自带的文件系统不支持2GB以上的文件,导致监听服务进程(tnslsnr)append

NodeJS Web应用监听sock文件实例_node.js

像 NodeJS 写的 TCP 服务可以监听在某个 sock 文件(Domain Socket) 上,它的 HTTP 服务也能这么干.虽然作为 HTTP 服务连接某个 sock 文件的意义不大,所以这里只算是一个纯粹的尝试. TCP 服务是这样写 复制代码 代码如下: var net = require('net'); net.createServer(function (socket) {   socket.on('data', function (data) {     socket.wri

AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理

AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理 Oracle监听器日志文件(通常叫做listener.log)是一个纯文本文件,它的大小是一直不断增长的,在一个生产Oracle服务器上,DBA会每日查看该文件,如检查监听器是否有异常停止,是否有恶意攻击连接等,当这个文件特别大的时候,打开和浏览文件内容时可能比较慢.这时可能会想到将当前的日志文件备份一下,然后重新创建一个新的日志文件,但Oracle的监听器在运行时是不允许对其日志文件做删除,重命名操作,于是只有停止监听器.重

intellij插件开发,监听java文件的创建

问题描述 intellij插件开发,监听java文件的创建 发现intellij插件开发的资料相当的少,不知道有没有人熟悉这一块,现在我需要监听java文件的创建,创建文件之后执行我指定的回掉函数,不知道如何配置?谢谢 解决方案 去官网找下相关文档吧.http://www.jetbrains.com/idea/

android中DownloadManager实现版本更新,监听下载进度实例

DownloadManager简介 DownloadManager是Android 2.3(API level 9)用系统服务(Service)的方式提供了DownloadManager来处理长时间的下载操作.它包含两个静态内部类DownloadManager.Query(用来查询下载信息)和DownloadManager.Request(用来请求一个下载). DownloadManager主要提供了下面几个方法: public long enqueue(Request request)把任务加

全面解析Android中对EditText输入实现监听的方法_Android

在 Android design support 包中提供了一种在输入不合适字符时一直显示的提示方式来显示,现在已经开始在更多的应用上被使用了:这些 Android app 在显示他们的错误提示时采用的不同的方式常常让人感觉非常的不和谐. 即这个一直显示的错误消息是在 TextInputLayout 中的 EditText 周围的.这也是,作为一个奖励,提供了材料设计风格中,活泼的浮动标签在一个 APP 的用户体验中常常是最无聊的部分. 这里来讨论如何在你的输入表单上去创建一个通用的.可重用的组