如何删除oracle监听日志

如题所述

先用lsnrctl进入监听模式   

c:users>lsnrctl

LSNRCTL>set log_status off (此时便可删除监听日志文件listener.log,然后再新建一个listener.log,日志文件位置:D:\oracle\administrator\diag\tnslsnr\WIN-D6HG09P8C45\listener\trace下面)     

   LSNRCTL>set log_status on

意思就是先停止监听日志输出。删除后再开启日志暑促

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
    Oracle的监听(Listener)在缺省情况下,会在文件中记录日志,记录数据库实例注册操作、客户端的连接等。缺省(没有设置log_file参数时)的文件是$ORACLE_HOME/network/log/listener.log。
  对于一些使用短连接的,频繁的连接数据库的应用,listener.log增长很快。有的可以在比较短的时间内(十几天)就可以超过2GB。对于一些平台的某些版本的Oracle,在监听日志增大到2GB以后会导致监听不能正常工作(我没遇到过,不过感兴趣的朋友可以在网上搜索一下,有这样的案例)。
  对于这种listener.log增长非常迅速的系统,可以关闭监听日志,不让监听写日志到文件。也可以写个job定期清理。本文主要描述怎么样关闭监听日志:
  可以在监听命令行接口中使用命令:
  D:\>lsnrctl
  LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 15-10月-2008 20:52:11
  Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
  欢迎来到LSNRCTL,请键入”help”以获得信息。
  LSNRCTL> set log_status off
  正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dreamf)(PORT=1521)))
  LISTENER 参数 \log_status\ 被设为 OFF
  命令执行成功
  LSNRCTL> save_config
  正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dreamf)(PORT=1521)))
  未保存对LISTENER所作的更改
  命令执行成功
  LSNRCTL>
  我们可以在listener.ora文件中可以看到增加了下面的内容:
  #----ADDED BY TNSLSNR 15-10月-2008 10:05:43---
  LOGGING_LISTENER = OFF
  #---------------------------------------------
  所以我们也可以在listener.ora文件增加上面的内容来关闭监听日志。但是只有在监听重启后才会生效,而通过lsnrctl 这个命令接口设置,可以立即生效,Windows平台上的文件会立即关闭。因此可以利用这个特性,用来删除WINDOWS平台上的监听日志文件,因为不这样,在监听运行时监听日志是不能删除的本回答被提问者和网友采纳