----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
由于我们这边的应用是频繁的断开式连接,所以tnslsnr.exe会逐渐增大,直接吃满内存1.7G,
可以在
ORACLE_HOME/network/admin/listener.ora下面加入一行即可关掉log的记录,反正我也不查tns的log,留他何用?
logging_listener=off
需要重启
或是在lsnrctl里设置set log_status off,在10g里这个会即时生效
LSNRCTL> show log_status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 参数 "log_status" 设为 ON
命令执行成功
LSNRCTL> set log_status off
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 参数 "log_status" 设为 OFF
命令执行成功
LSNRCTL> save_config
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
保存的LISTENER配置参数。
但是tnslsnr.exe还是霸占着这么多的内存,需要lsnrctl里stop+start来释放
至此,问题解决...
清空tnslsnr.exe的log文件内容,
在linux下:
>| listener.log
windows 下:
建立一个空文件fu
然后
type fu > listener.log
新建fu_tns_log.log文件做为新的监听日志文件,这个方法不用关闭监听
LSNRCTL> set log_file
Parameter Value: fu_tns_log.log
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 参数 'log_file' 设为 fu_tns_log.log
命令执行成功