阻止Oracle生成sqlnet.log文件

时间:2009-05-11 13:45:39

标签: perl oracle

我在perl中使用DBD :: Oracle,并且每当连接失败时,客户端都会生成一个包含错误详细信息的sqlnet.log文件。

问题是,我已经被perl和我自己的日志文件中的错误所困。我真的不需要这些额外的信息。

那么,是否有用于停止创建sqlnet.log的标志或环境?

4 个答案:

答案 0 :(得分:6)

正如Oracle Documentation所述:为确保记录所有错误,无法在客户端或名称服务器上禁用日志记录。

您可以按照DCookie的建议使用/ dev / null作为日志目录。您可以在Windows机器上使用NUL:

答案 1 :(得分:4)

您的客户端是Windows还是* nix?如果在* nix中,您可以在sqlnet.ora文件中设置LOG_DIRECTORY_CLIENT = / dev / null。不确定你是否可以为Windows客户端做很多事情。

编辑:在Windows中看起来不可能。您可以做的最好的事情是将上面的sqlnet.ora参数设置为固定位置,并创建一个计划任务以根据需要删除该文件。

好的,正如Thomas指出Windows上有一个空设备,使用相同的范例。

答案 2 :(得分:4)

来自metalink

  

日志记录是自动的,无法关闭日志记录,但由于您使用的是Unix服务器,因此可以将日志文件重定向到空设备,从而消除磁盘空间消耗的问题。

     

在SQLNET.ORA文件中,将LOG_DIRECTORY_CLIENT和LOG_DIRECTORY_SERVER设置为等于空设备。

     

例如:

LOG_DIRECTORY_CLIENT = /dev/null
LOG_FILE_CLIENT = /dev/null
     SQLNET中的

.ORA完全禁止客户端日志记录。

     

要禁止侦听器进行日志记录,请在LISTENER.ORA文件中设置此参数:

logging_listener = off 

答案 3 :(得分:2)

重要提示:请勿设置" LOG_FILE_CLIENT = / dev / null",这将导致每次初始化oracle库时重置/ dev / null的权限,并且当umask不允许时世界可读写的位,那些从/ dev / null中删除的,如果你有权限chmod那个文件:即以root身份运行。

并以root身份运行也许是微不足道的事情,比如php --version有oci php-extension存在!

此处的详细信息: http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2014-May/023931.html

你应该使用目前不存在的路径:

LOG_FILE_CLIENT = /dev/impossible/path

希望没有人创建目录/dev/impossible:)

for Windows NUL可能很好,因为它不是那里的实际文件...