一、问题描述
当Oracle监听日志过大时,查看监听监听状态报错并非常缓慢。业务无法连接到数据库,登陆数据库服务器,查看监听已经断掉,尝试重启监听,重启失败;查看监听日志listener.log的大小已经超过9G以上。
在oracle中,如果不对监听日志文件进行截断(定期清理),那么监听日志文件会变得越来越大,由于一些老旧的OS不支持2GB以上的文件,故当listener.log文件超过2GB时,会出现无法处理新的连接,新的操作系统虽然不会出现这个问题,但我们依然需要对其进行定期清理。
二、解决方法
清除日志文件内容(不可删除文件再创建新文件)。
1、linux操作步骤:
步骤1:停止监听服务进程(tnslsnr)记录日志
$ lsnrctl set log_status off;
步骤2:拷贝listener.log文件
$ cp listener.log listener.log.bak
步骤3:清空listener.log文件内容
$ echo ‘ ’ > listener.log
步骤4:查看日志文件大小,确认是否被清空
$ du -sk *
步骤5:开启监听服务进程(tnslsnr)日志
$ lsnrctl set log_status on;
步骤6:查看监听日志是否正常运行,如果不断更新,说明没问题(假如没人连接数据库,我们是看不到变化的,此时我们可以使用sqlplus连接数据库,看listener.log是否会更新
$ tail -f listener.log
2、windows操作步骤
步骤1:运行cmd,停止监听服务进程(tnslsnr)记录日志
命令:
lsnrctl set log_status off
步骤2:切换到监听日志文件位置,并打开cmd,清空文件
命令:
cls >listener.log
dir命令可以查看当前文件夹下的内容并显示其详细信息
步骤3:开启监听服务进程(tnslsnr)日志
命令:
lsnrctl set log_status on
版权归原作者 国风含雪 所有, 如有侵权,请联系我们删除。