告警日志裡這兩天一直顯示這個錯誤:
ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[],[] TueAug1209:20:17CST2014 Errorsinfile/u01/app/oracle/admin/orcl/udump/orcl_ora_29974.trc: ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[],[] TueAug1209:30:17CST2014 Errorsinfile/u01/app/oracle/admin/orcl/udump/orcl_ora_30084.trc: ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[],[] TueAug1209:40:17CST2014 Errorsinfile/u01/app/oracle/admin/orcl/udump/orcl_ora_29919.trc: ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[],[]
網上查的解決辦法:
1:臨時的解決方法
如果執行計劃中是hashjoin造成的,在會話層中設置"_hash_join_enable"=false,如:altersessionset"_hash_join_enabled"=false亦可;
如果執行計劃是hashgroupby造成的,設置"_gby_hash_aggregation_enabled"=false
2:根本的解決方法
2.1.優化sql語句,避免遇到bug;
2.2.升級
(1)將數據庫升級psu到10.2.0.5.4和11.2可以修正該問題
(2)對於10.2.0.5.0到10.2.0.5.3的版本,打PATCH7612454來避免改錯誤(該補丁替換lib中的kcbl.o文件)。
通過臨時解決辦法解決問題示例:
追蹤報警日志裡提示的trace文件,找到導致出現此錯誤的sql語句
ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[],[] CurrentSQLstatementforthissession:
格式化後的sql語句如下:
SELECTINDENTDATE, INDENTGROUP, TRANSDATE, TRANSBY, TRANSGROUP, FEEDBACKBY, FEEDBACKGROUP, FINANCEDATE, FINANCEBY, FINANCEGROUP, TOTALCOST, A.TOTALPAY, PAY_CASH, PAY_POINTS, PAY_ADVANCE1, PAY_ADVANCE2, PAY_TYPE, TRANS_PAY, DISCOUNT_STAFF, DISCOUNT_SPECIAL, GAIN_CASH, GAIN_POINTS, GAIN_ADVANCE1, GAIN_ADVANCE2, TRANS_CUSTNAME, TRANS_TEL, TRANS_PROVINCE, TRANS_CITY, TRANS_ADDRESS, TRANS_ZIPCODE, TRANS_WEIGHT, TRANS_COMMENTS, INDENT_COMMENTS, INDENT_ID, A.PARTNER_GUID, A.PROXY_GUID, TRANS_TEL2, CUST_MEDIA_ID, CUST_PARTNER_GUID, CUST_PROXY_GUID, PARTNER_VALUE, PROXY_VALUE, CUST_PARTNER_VALUE, CUST_PROXY_VALUE, DEALBY, A.FAILREASON, ISFOOT, S_REASONID, DEALFAILREASON, A.PRE_FUND, MEDIA_CALLTYPE, PRE_ADVANCE, WEB_FLAG, NEED_INVOICE, INVOICE_TITLE, TRANS_AREA, ORDERTYPE, PAY_POINTSPRICE, A.MEDIA, USERDEFINEDSTATUS, CUSTOMERNAME, CUSTOMERID FROMELITE.TABCINDENTA LEFTJOINELITE.OBJECTIVEB ONA.RELATION_ID=B.OBJECTIVE_GUID LEFTJOINELITE.CUSTOMERC ONA.CUSTOMER_GUID=C.CUSTOMER_GUID WHERE(INDENTDATEBETWEEN:1AND:2ORB.MODIFIEDDATEBETWEEN:3AND:4);
將變量:1,:2,:3,:4替換成具體的值執行:
SELECTINDENTDATE, INDENTGROUP, TRANSDATE, TRANSBY, TRANSGROUP, FEEDBACKBY, FEEDBACKGROUP, FINANCEDATE, FINANCEBY, FINANCEGROUP, TOTALCOST, A.TOTALPAY, PAY_CASH, PAY_POINTS, PAY_ADVANCE1, PAY_ADVANCE2, PAY_TYPE, TRANS_PAY, DISCOUNT_STAFF, DISCOUNT_SPECIAL, GAIN_CASH, GAIN_POINTS, GAIN_ADVANCE1, GAIN_ADVANCE2, TRANS_CUSTNAME, TRANS_TEL, TRANS_PROVINCE, TRANS_CITY, TRANS_ADDRESS, TRANS_ZIPCODE, TRANS_WEIGHT, TRANS_COMMENTS, INDENT_COMMENTS, INDENT_ID, A.PARTNER_GUID, A.PROXY_GUID, TRANS_TEL2, CUST_MEDIA_ID, CUST_PARTNER_GUID, CUST_PROXY_GUID, PARTNER_VALUE, PROXY_VALUE, CUST_PARTNER_VALUE, CUST_PROXY_VALUE, DEALBY, A.FAILREASON, ISFOOT, S_REASONID, DEALFAILREASON, A.PRE_FUND, MEDIA_CALLTYPE, PRE_ADVANCE, WEB_FLAG, NEED_INVOICE, INVOICE_TITLE, TRANS_AREA, ORDERTYPE, PAY_POINTSPRICE, A.MEDIA, USERDEFINEDSTATUS, CUSTOMERNAME, CUSTOMERID FROMELITE.TABCINDENTA LEFTJOINELITE.OBJECTIVEB ONA.RELATION_ID=B.OBJECTIVE_GUID LEFTJOINELITE.CUSTOMERC ONA.CUSTOMER_GUID=C.CUSTOMER_GUID WHERE(INDENTDATEBETWEEN'2012-06-19'AND'2012-08-19'ORB.MODIFIEDDATEBETWEEN'2012-06-19'AND'2012-08-1');
執行報錯:
解決辦法:
altersessionset"_hash_join_enabled"=false;
altersessionset"_gby_hash_aggregation_enabled"=false
--先嘗試一種,如果一種解決了,就沒必要設置另外一種了。
然後再次執行上面的查詢語句,不報錯啦,嘎嘎
成功啦,(*^__^*)嘻嘻……
讓開發人員在程序裡加上這條命令即可。
Bug 4401437 CONNECT BY query may fail with OERI:qergiStart1 / OERI:qesmmCValStat4
This note gives a brief overview of bug 4401437.
The content was last updated on: 03-APR-2009
Click here for details of each of the sections below.
Affects:
Product (Component) Oracle Server (Rdbms)
Range of versions believed to be affected Versions BELOW 11.1
Versions confirmed as being affected
10.2.0.1
10.1.0.4
9.2.0.8
Platforms affected Generic (all / most platforms affected)
Workaround
Add a "no_filtering" hint to the query.
可以通過加no_filtering的 提示了 繞過該錯誤哦!
如果自己搞不定可以找詩檀軟件專業ORACLE數據庫修復團隊成員幫您恢復!
詩檀軟件專業數據庫修復團隊
ORA-600[4137] transaction id不匹配,問題可能存在與回滾段中或者對象本身存在訛誤 While backing out an undo record (i.e. at the time of rollback) we found a transaction id mis-match indicating either a corruption in the rollback segment or corruption in an object which the rollback segment is trying to apply undo records on.
This would indicate a corrupted rollback segment. Undo/Redo
DESCRIPTION:
While backing out an undo record (i.e. at the time of rollback) we found a
transaction id mis-match indicating either a corruption in the rollback
segment or corruption in an object which the rollback segment is trying to
apply undo records on.
這個需要patch undo來修復
如果自己搞不定可以找詩檀軟件專業ORACLE數據庫修復團隊成員幫您恢復!
詩檀軟件專業數據庫修復團隊