关闭listener监听日志

时间:2022-10-05 22:37:45

有几次碰到过由于监听日志文件大小达到几G,使得在连接时非常慢,像hang住一样,windows下的监听日志达到4G限制,后续连接如果无法写监听日志,就会产生TNS-12537报错,可以通过关闭写监听日志文件去避免或者写个定时任务定时清理;

C:\Users\XXX>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.5.0 - Production on 18-7月 -2016 15:47:47

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX-THINK)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.5.0 - Production
启动日期                  18-7月 -2016 15:41:36
正常运行时间              00 小时 616 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
监听程序日志文件 C:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XXX-THINK)(PORT=1521)))
服务摘要..
服务 "XXX" 包含 2 个例程。
  例程 "XXX", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
  例程 "xxx", 状态 READY, 包含此服务的 1 个处理程序...
服务 "XXXPXDB" 包含 1 个例程。
  例程 "XXX", 状态 READY, 包含此服务的 1 个处理程序...
服务 "XXX_XPT" 包含 1 个例程。
  例程 "XXX", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

查看监听状态,有显示监听程序日志文件 C:\oracle\product\10.2.0\db_1\network\log\listener.log;

C:\Users\XXX>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.5.0 - Production on 18-7月 -2016 15:55:30

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

欢迎来到LSNRCTL, 请键入"help"以获得信息。

LSNRCTL> set log_status off
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX-THINK)(PORT=1521)))
LISTENER 参数 "log_status" 设为 OFF
命令执行成功
LSNRCTL> save_config
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX-THINK)(PORT=1521)))
保存的LISTENER配置参数。
监听程序参数文件          C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
旧的参数文件C:\oracle\product\10.2.0\db_1\network\admin\listener.bak
命令执行成功
LSNRCTL> quit

再次查看监听状态时,已经没有显示日志文件地址:

C:\Users\XXX>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.5.0 - Production on 18-7月 -2016 15:56:18

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX-THINK)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.5.0 - Production
启动日期                  18-7月 -2016 15:41:36
正常运行时间              00 小时 1447 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XXX-THINK)(PORT=1521)))
服务摘要..

我们可以在listener.ora文件中可以看到增加了下面的内容:

C:\Users\XXX>type C:\oracle\product\10.2.0\db_1\network\admin\listener.ora

#----ADDED BY TNSLSNR 05-7月 -2016 09:45:54---
LOGGING_LISTENER = OFF
#---------------------------------------------

也可通过直接在listener.ora文件中 加入上面那句,不过得监听重启后才会生效,而通过lsnrctl 这个命令接口设置,可以立即生效;