Oracle监听器日志文件(通常叫做listener.log)是一个纯文本文件,它的大小是一直不断增长的,在一个生产Oracle服务器上,DBA会每日查看该文件,如检查监听器是否有异常停止,是否有恶意攻击连接等,当这个文件特别大的时候,打开和浏览文件内容时可能比较慢。这时可能会想到将当前的日志文件备份一下,然后重新创建一个新的日志文件,但Oracle的监听器在运行时是不允许对其日志文件做删除,重命名操作,于是只有停止监听器。重命名后,再启动监听器,启动时会自动创建一个新的监听器日志文件,但这样客户端连接就会断开,本文介绍一种方法在不停止监听器的情况下,重命名监听器日志文件。
监听器命令(WINDOWS在命令行下操作,LINUX和AIX均同命令)
lsnrctl set log_status off
lsnrctl set log_status on
实例:AIX、ORACLE10G
1、处理前(listener_p550a.log很大)
p550a:/home/oracle/database/network/log#ls -lt
总计 2356504
-rw-r--r-- 1 oracle dba 1195793131 3月11 09时59 listener_p550a.log
-rw-r--r-- 1 oracle dba 10698028 3月10 22时25 sqlnet.log
2、lsnrctl set log_status off
p550a:/#su - oracle
$ lsnrctl set log_status off
LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Production on 11-MAR-2011 10:02:38
Copyright (c) 1991, 2006, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER parameter "log_status" set to OFF
The command completed successfully
3、移动文件到备份路径,释放空间
p550a:/home/oracle/database/network/log#mv listener_p550a.log /bak
4、lsnrctl set log_status on
$ lsnrctl set log_status on
LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Production on 11-MAR-2011 10:06:12
Copyright (c) 1991, 2006, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER parameter "log_status" set to ON
The command completed successfully
5、再来看看,已经自动新建了listener_p550a.log
p550a:/home/oracle/database/network/log#ls -lt
总计 20928
-rw-r--r-- 1 oracle dba 102 3月11 10时06 listener_p550a.log
-rw-r--r-- 1 oracle dba 10698028 3月10 22时25 sqlnet.log
p550a:/home/oracle/database/network/log#
本文转自东方之子736651CTO博客,原文链接:http://blog.51cto.com/ecloud/1725192 ,如需转载请自行联系原作者