富达主管2540437oracle-listener 4G

来源:这里教程网 时间:2026-03-03 16:18:03 作者:
今天系统报了文件系统使用率过80% 的警告,进过分析后 
/opt/app/oracle/product/10.2.0/db_1/network/log 目录下 listener_testdb1.log 这个文件非常大     [root@testdb1:/opt/app/oracle/product/10.2.0/db_1/network/log]# ls -l   total 16018840   -rw-r-----    1 oracle   oinstall 4294967311 Apr 14 2012  listener_testdb1.log   -rw-r-----    1 oracle   oinstall 3903163381 Feb 20 2012  listener_testdb1.log.20120220   -rw-r-----    1 oracle   oinstall    3370281 Jun  6 06:50 sqlnet.log      listener_testdb1.log 该日志文件大小正好为 4G ,且有一年多没有更新了,   正常情况下,该文件几乎一秒钟至少更新一次。      这时可能会想到将当前的日志文件备份一下,然后重新创建一个新的日志文件,   但Oracle的监听器在运行时是不允许对其日志文件做删除,重命名操作,于是只有停止监听器。   重命名后,再启动监听器,启动时会自动创建一个新的监听器日志文件,但这样客户端连接就会断开,      但也有一种方法在不停止监听器的情况下,重命名监听器日志文件。      监听器命令(WINDOWS在命令行下操作,LINUX和AIX均同命令)    lsnrctl set log_status off        lsnrctl set log_status on        *****此次具体操作步骤 :      lsnrctl set log_status off    ### 先把日志状态停掉,这样就不会写监听器日志   现在就可以把 监听器日志文件备份mv 或是 删掉rm   lsnrctl set log_status on     ### 重新打开日志,开始记录监听器日志。该文件会自动创建      可以执行  lsnrctl status ,检查监听器日志文件      切记 : 不能直接 cat /dev/null >  listener_testdb1.log 除非在监听器关闭的情况下。           否则,即便文件已经被清空,监听器还是无法执行写入日志的。         另外也可以指定监听器日志文件的名字,而不需要系统生成的文件名:   LSNRCTL> set log_file   Parameter Value: a.log         疑问 :    为什么该文件(listener_testdb1.log)物理空间到了 4G 后,就无法增长了呢 ?    且导致监听器日志无法更新。    而且还有很多关于该文件大于 4G 后,导致数据库监听器无法启动,    也有人说会导致客户端连接的速度。      暂没有找到官方答案,下面是针对该问题几个网友的见解 :       1.  Bug 9497965 - Win: Listener Startup Fails Due to listener.log Size is Greater Than 4GB [ID 9497965.8]          2. 看一下listener.log文件,突然发现这个文件大小有4GB了。不再写如新的内容进来了。      会不会是日志文件满了,监听器就不工作了。于是,清理掉该文件,一切恢复正常。      我记得,在linux下oracle 10g中,该日志文件一旦满了,就会不记录日志但监听器正常。没想到在windows下,11g就因此而挂了。      3.  I leave listener_log status in the off position. Unless I need to debug something (or some folks have       a need for auditing connections), this is a useless file, and it's just       one more thing that needs to be managed.  

相关推荐