什么是oradiag_ <user>文件夹?

dot*_*dot 22 oracle debian zend-server

安装Zend Framework后,我在Linux文件夹层次结构中看到了这些内容.

/oradiag_root/
/user/myuser/oradiag_myuser/
/user/myuser/oradiag_root/
Run Code Online (Sandbox Code Playgroud)

这个名字让我想起了Oracle.但我没有找到任何关于此的官方文件.

我没有安装任何Oracle服务器.这里发生了什么?

Mic*_*ssa 16

我从来没有在我的系统上安装Oracle,也不知道为什么这些目录一直在创建,但我终于设法阻止它们再次出现.这是它的完成方式.

首先,前往:

cd ~/oradiag_<username>/diag/clients/user_<username>/host_*/trace/

然后

head sqlnet.log

您应该看到一条错误消息,抱怨r/w不存在目录.对我来说,它是/usr/lib/log.我创建了它抱怨的oradiag_<username>目录并删除了目录,但后来才重新出现; 但是,sqlnet.log文件现在抱怨不同的目录.

我重复了几次创建目录的过程,直到目录最终停止出现.在您的情况下,目录可能会有所不同,但这是为我解决的问题:

sudo mkdir /usr/lib/log/diag/clients
sudo chmod 777 /usr/lib/log/diag/clients
Run Code Online (Sandbox Code Playgroud)

clients显然,只有目录需要777.

现在只需清除oradiag_<username>目前出现的目录.他们不应该再次为你弹出.

如果你很好奇,这就是最终被写入"缺失"目录的内容:

mike@mike-ubuntu:/usr/lib/log/diag/clients$ ll -a
total 8
drwxrwxrwx 2 root root 4096 2011-08-24 10:34 .
drwxr-xr-x 3 root root 4096 2011-08-24 10:34 ..
Run Code Online (Sandbox Code Playgroud)

辉煌.

  • 777权限(几乎?)从来没有必要,而且一般(或总是?)是一个糟糕的主意.你确定你不能用不到的东西过关吗?您是否应该只能访问用于运行Zend Server的用户或组?在我的例子中,用户是`zend`,组是`zend`.为什么不给他们任何一个目录的所有权?是否真的有必要使这些目录成为世界可写的? (2认同)

bro*_*eni 8

如果sqlnet.ora不可用或未定义参数ADR_BASE,则由Oracle 11 SQL*Net创建这些文件夹(请参阅http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/sqlnet .htm#BIIDEAFI).


Dee*_*cum 6

那里有很多建议,但唯一对我有用的是这个.

在Oracle 11gR1及更高版本中,您必须首先将其添加到sqlnet.ora文件中:

DIAG_ADR_ENABLED=OFF
Run Code Online (Sandbox Code Playgroud)

之后,其他日志禁用设置应该工作:

TRACE_LEVEL_CLIENT = OFF
TRACE_DIRECTORY_CLIENT=/dev/null
LOG_DIRECTORY_CLIENT = /dev/null
LOG_FILE_CLIENT = /dev/null
LOG_LEVEL_CLIENT = OFF
Run Code Online (Sandbox Code Playgroud)

创建的日志适用于Oracle 客户端.当任何程序尝试访问Oracle数据库时,日志可能会显示.


小智 -1

如果您已经安装了 Zend Framework,它似乎会创建这些目录。

  • Zend Framework **不**创建这些。最有可能的是,这与 Zend Server 以及默认启用的 Oracle 支持有关。单独解压 ZF 不会给你这些目录(如果你不相信我,请检查源代码包)。 (4认同)