tnslsnr.exe进程占用大量内存的解决.

----------------------------------------------------------------

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

命令执行成功


posted @ 2010-04-08 14:50  Gerrard  阅读(1948)  评论(0编辑  收藏  举报