满意答案
yaoyangm
2016.08.03
采纳率:47% 等级:12
已帮助:27962人
当然要对监听日志文件(listener.log)进行定期清理,如果不定期清理,会遇到下面一些麻烦:
1:监听日志文件(listener.log)变得越来越大,占用额外的存储空间。(当然现在存储白菜价,不差那几G的空间。但是我们还是要本着工匠情怀,精益求精)
2:监听日志文件(listener.log)变得太大会带来一些问题:LISTENER.LOG日志大小不能超过2GB,超过会导致LISTENER监听器无法处理新的连接。
3:监听日志文件(listener.log)变得太大,给写入、查看带来的一些性能问题、麻烦。
也有人说是监听服务进程一般使用标准C函数Write写出到Listener.log,listener.log文件时使用的是O_WRONLY|O_CREAT|O_APPEND,O_APPEND即追加到文件的尾端,一般来说追加写方式不会因为文件越大写地越慢。撇开这个不谈,在一个很大的监听日志文件(listener.log)查找某一天或某一个错误,这个确实会带来一些性能问题。查找起来也相当麻烦。
所以应该定期对监听日志文件(listener.log)进行清理,另外一种说法叫截断日志文件。关于截断监听日志,要注意一些问题。初学ORACLE的时候遇到一个错误的截断监听日志的,下面演示一下
[oracle@DB-Server log]$ mv listener.log listener.log.20150114
[oracle@DB-Server log]$ cp /dev/null listener.log
[oracle@DB-Server log]$ more listener.log
如上所示,这样截断监听日志(listener.log)后,监听服务进程(tnslsnr)并不会将新的监听信息写入listener.log,而是继续写入listener.log.20150114
[oracle@DB-Server log]$ tail listener.log.20150114
15-JAN-2015 22:40:01 * service_update * EPPS * 0
15-JAN-2015 22:47:59 * service_update * EPPS * 0
15-JAN-2015 22:58:00 * service_update * EPPS * 0
15-JAN-2015 23:08:00 * service_update * EPPS * 0
15-JAN-2015 23:18:01 * service_update * EPPS * 0
15-JAN-2015 23:28:01 * service_update * EPPS * 0
15-JAN-2015 23:38:02 * service_update * E