oracle No more data to read from socket之ora-07445排查解决
今天下午,原来一个部门的同事找过来,说有个即将上线的环境偶尔会出现 No more data to read from socket错误,版本是oracle 11.2.0.1,如下:
经查,这个问题原因比较多,有oracle自己的bug,有可能配置的问题,也有可能代码上的问题。主要有如下:
1、jdbc连接池大小问题,我们最小10、最大100,有校验有效性,此原因排除;
2、有可能是内存不足的原因,经查看sar历史,排除此原因;
3、有可能绑定变量偷窥问题,可设置_optim_peek_user_binds = false解决;
上述参考:https://stackoverflow.com/questions/7839907/no-more-data-to-read-from-socket-error
对于此类问题,首要排查的就是oracle alert和trace,根据开发反馈的时间段,果然有很多的dump:
逐步往上排查,一共有下列几类ORA-07445:
ORA-07445: exception encountered: core dump [pfr_v3_tab_handler()+311] [SIGSEGV]
确认的bug 10269022,Executing a PL/SQL block dynamically that returns a REF CURSOR fails with ORA-7445 [pfr_v3_tab_handler] – superceded,11.2.0.3修复
ORA-07445: 出现异常错误: 核心转储 [ksuklms()+316]
确认的bug 13322802,11.2.0.4修复
ORA-07445: exception encountered: core dump [dbgrmqmqpk_query_pick_key()+2033]
确认的bug 9390347,11.2.0.2修复
ORA-07445: exception encountered: core dump [kocgpn2()+141] [SIGSEGV]
这个错误号没有查到相应的bug记录。
最后,让用户升级到11.2.0.4解决。
除此之外,有可能是sql太复杂所致,比如sql中有with子句,with又引用了另一个with,扁平化后也可能可以解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2016-09-03 rabbitmq队列中消息过期配置