ITPub博客

首页 > 数据库 > Oracle > Caused by: java.sql.SQLException: 无法从套接字读取更多的数据

Caused by: java.sql.SQLException: 无法从套接字读取更多的数据

原创 Oracle 作者:随风映雪 时间:2020-09-01 16:05:52 0 删除 编辑

       最近一个月从两个不同的地方碰到了相同的报错,更加巧合的是相关人员都执行了相同的参数修改,并且其中一个客户因随意修改参数导致数据库的大量sql执行计划抖动,应用受到极大影响。。

报错如下:Caused by: java.sql.SQLException: 无法从套接字读取更多的数据

这个报错为前端应用报错,因为报错太明确了,所以猜测他们都直接搜索,然后就直接用了,修改的参数为

_optimizer_connect_by_cost_based



这边一定要注意,修改oracle的隐含参数一定要谨慎,尤其是_optimizer开头的和优化器相关的参数,稍有不慎,就会出现开头出现的情况。 并且实际上修改完这个参数后,并没有用处


这个报错一直在前台持续,对应的时间点alert日志中显示如下:

Dump continued from file: /u01/app/oracle/diag/rdbms/XX/XX/XXX_ora_1466.trc
ORA-07445: 出现异常错误: 核心转储 [evaopn3()+135] [SIGSEGV] [ADDR:0x4] [PC:0x98244A7] [Address not mapped to object] []


查看这个trc文件,可以找到引发这个报错的sql。

ORA-7445这种建议在官方文档中搜索资料,大部分情况都有收录,找到对应的 Doc ID 22611354.8 AND Doc ID 1943615.1

可以确认这是一个bug,官方建议修改参数为

不过在确认sql的情况下,我们基本上不会在数据库级别去该参数。我们会通过hint的方式,在sql级别去应用,如下所示:

如果是create table ,那么加上

/*+ OPT_PARAM('_pred_move_around','FALSE') */

如果是select查询,那么加上

/*+OPT_PARAM('_optimizer_join_elimination_enabled' 'false')*/


然后通知开发修改应用的sql,达成目的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31404823/viewspace-2716307/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
擅长ORACLE,pg,mysql等数据库,希望能持续分享数据库相关的知识,以及一些平常工作中遇到的问题

注册时间:2016-10-23

  • 博文量
    22
  • 访问量
    18996