Oracle监听连接速度很慢且不稳定问题排查与解决

1.本机数据库启动和关闭正常
sqlplus / as sysdba
startup
shutdown immediate
2.Oracle监听启动时需要几分钟并且大概率启动失败(监听服务启动也很慢)
lsnrctl start
3.查询监听状态也需要几分钟才能出结果
lsnrctl status
应用程序或Oracle客户端(PL/SQL等)连接时好时坏,并且连接很慢(连接上之后正常使用),但很容易导致应用程序数据库连接池阻塞
4.大概率原因是Oracle监听日志过大导致的,这个问题很容易被忽略,因为Oracle监听日志有两部分,分别位于\diag\tnslsnr\DBServer\listener\alert(警告日志)和\diag\tnslsnr\DBServer\listener\trace(跟踪日志),警告日志是多个.xml文件,且单文件最大默认是10M,而跟踪日志是一个listener.log文件,这个文件的上限是4Gb,超过4Gb将严重影响数据库连接速度,从而导致本文现象出现。而一般让这个文件达到4Gb,业务量一般的情况下可能需要两三年,所以很容易被忽略监控。
解决方法:
将listener.log文件删除或清空即可。(不停监听服务这个文件无法直接删除或修改,提示被占用)
解决步骤:
在cmd中进入监听管理
lsnrctl
关闭监听日志
set log_status off
停止Oracle监听服务
stop
直接删除D:\Oracle\diag\tnslsnr\DBServer\listener\trace\listener.log文件或者新开一个cmd窗口,使用命令清空该文件
cls > D:\Oracle\diag\tnslsnr\DBServer\listener\trace\listener.log
start
或是直接修改日志文件名称解决

 

posted on 2024-09-23 14:44  小小小传说  阅读(92)  评论(0编辑  收藏  举报

导航