ORA-03114乌龙处理
接到中心工單,派往客戶現(xiàn)場處理了一件特別烏龍的故障。
故障描述:應用程序執(zhí)行某個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錯誤信息,應用程序所在的客戶端上執(zhí)行sqlplus 登陸到數(shù)據(jù)庫,做一個操作select操作后,這個會話30分鐘不做任何操作。
?????? 客戶端是Red?Hat?Enterprise?Linux?Server?release?6.2?(Santiago),只是安裝的10201_database_linux_x86_64.cpio 軟件(沒有裝庫)作為oracle client端使用。操作系統(tǒng)包依賴包:全部裝好
,oracle db是 10g rac 10.0.0.5 版本、操作系統(tǒng) aix 5L3。
?
之前我記得接觸過PLSQL Developer中有一個參數(shù)tools中add debug information when compiling如果這個參數(shù)已經(jīng)啟用,會引發(fā)ORA-03114的錯誤。詢問最近是否做過網(wǎng)絡改動,客戶回答沒有任何改動、而且其他一個域里面的機器沒有任何問題。
我想還原一下環(huán)境,看看是否報錯。編寫了一個腳本:
?
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
?
然后查看了監(jiān)聽日志,tns配置,process,session數(shù),用戶概要文件中profile也沒有指定會話超時時間,該看的都看了一遍。
果然如果停止半小時后,如果沒有新的交易,那么會報ORA-03114錯誤。去應用處與應用人員核對,是半小時就會報錯,還是平時幾分鐘也有。應用人員沒有準確信息反饋,只說一般半小時就會報錯。后詢問相關系統(tǒng)負責人,可能是系統(tǒng)負責人沒有接到任何的郵件通知,或者郵件里面沒有標注會話等待30分鐘后,再進行鏈接就會報錯的字樣。他說可能是juniper防火墻策略問題,Cisco的防火墻2小時自己退出。juniper墻30分鐘自動退出。果然查看日志,很多告警信息。剩下的就是應用那邊完善應用代碼中檢測機制的問題了。果斷閃人~~~
?
總結
以上是生活随笔為你收集整理的ORA-03114乌龙处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ckeditor和ckfinder的使用
- 下一篇: 如何重构页面