阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ORA-03114: 未连接到 ORALCE 解决方法案例

132次阅读
没有评论

共计 1425 个字符,预计需要花费 4 分钟才能阅读完成。

故障描述:应用程序执行某个 select,update 时应用程序的 log 报如下错误信息, 程序无法更新更新某个表:

[200065640] 01-24 18:01:01.233136 [13490] [libUserFunDb30_0.ec][554] update t_clear_journal failed, CLEARTRSNO =[20130124107200065640] SQLCODE = [-3114] SQLTEXT=[ORA-03114: 未连接到 ORALCE] [libUserFunDb30_0.ec:554]

alert 里面没有 ora-03114 错误信息,应用程序所在的客户端上执行 sqlplus 登陆到数据库,做一个操作 select 操作后,这个会话 30 分钟不做任何操作。

客户端是 Red Hat Enterprise Linux Server release 6.2 (Santiago),只是安装的 10201_database_linux_x86_64.cpio 软件(没有装库)作为 Oracle client 端使用。操作系统包依赖包:全部装好,oracle db 是 10g rac 10.0.0.5 版本、操作系统 aix 5L3。

之前我记得接触过 PLSQL Developer 中有一个参数 tools 中 add debug information when compiling 如果这个参数已经启用,会引发 ORA-03114 的错误。询问最近是否做过网络改动,客户回答没有任何改动、而且其他一个域里面的机器没有任何问题。

我想还原一下环境,看看是否报错。编写了一个脚本:

 

export ORACLE_SID=gxb_pay

export ORACLE_BASE=/oracle

export ORACLE_HOME=/oracle/product/10.2.0

export PATH=$PATH:$ORACLE_HOME/bin

 

sqlplus “pay/xxx@gxb” << EOF

select  sysdate from dual;

exec dbms_lock.sleep(1800);

select  sysdate from dual;

exec dbms_lock.sleep(3600);

select  sysdate from dual;

exec dbms_lock.sleep(3600);

EOF

然后查看了监听日志,tns 配置,process,session 数,用户概要文件中 profile 也没有指定会话超时时间,该看的都看了一遍。

果然如果停止半小时后,如果没有新的交易,那么会报 ORA-03114 错误。去应用处与应用人员核对,是半小时就会报错,还是平时几分钟也有。应用人员没有准确信息反馈,只说一般半小时就会报错。后询问相关系统负责人,可能是系统负责人没有接到任何的邮件通知,或者邮件里面没有标注会话等待 30 分钟后,再进行链接就会报错的字样。他说可能是 juniper 防火墙策略问题,Cisco 的防火墙 2 小时自己退出。juniper 墙 30 分钟自动退出。果然查看日志,很多告警信息。剩下的就是应用那边完善应用代码中检测机制的问题了。

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-08/134487.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计1425字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中