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
或是直接修改日志文件名称解决
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战