代码之家  ›  专栏  ›  技术社区  ›  Mathieu Longtin

停止Oracle生成sqlnet.log文件

  •  11
  • Mathieu Longtin  · 技术社区  · 16 年前

    我在Perl中使用dbd::oracle,每当连接失败时,客户机都会生成一个包含错误详细信息的sqlnet.log文件。

    问题是,我已经在Perl和我自己的日志文件中捕获了错误。我真的不需要这些额外的信息。

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

    4 回复  |  直到 9 年前
        1
  •  4
  •   Patrick McDonald    12 年前

    来自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 
    
        2
  •  6
  •   innaM    16 年前

    作为 Oracle Documentation 状态:为了确保记录所有错误,不能在客户端或名称服务器上禁用日志记录。

    您可以按照dcookie的建议使用/dev/null作为日志目录。您可以在Windows计算机上使用nul:。

        3
  •  4
  •   DCookie    16 年前

    您的客户是Windows上的客户还是*nix?如果在*nix中,可以在sqlnet.ora文件中设置log_directory_client=/dev/null。不确定您是否可以为Windows客户机做很多工作。

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

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

        4
  •  2
  •   glen    11 年前

    重要提示:不要设置“Log_file_client=/dev/null”,这将导致每次初始化Oracle库时重置/dev/null的权限,并且当umask不允许世界可读的可写位时,这些位将从/dev/null中删除,如果您有权限更改该文件的chmod,即以根目录运行。

    作为根目录运行可能是一些琐碎的事情,比如php——有oci-php扩展的版本!

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

    您应该在不存在的目录中使用路径:

    LOG_FILE_CLIENT = /dev/impossible/path
    

    希望没有人创造dir /dev/impossible :)

    对于Windows NUL 可能很好,因为这不是真正的文件…