1. 首页
  2. IT资讯

oracle 监听日志文件达到4G,导致监听报错的解决方法

今天系统报了文件系统使用率过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.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29578568/viewspace-2140148/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:布吉卡,转转请注明出处:http://www.cxybcw.com/195298.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code