程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle報錯(ORA-00600)問題處理,oracleora-00600

oracle報錯(ORA-00600)問題處理,oracleora-00600

編輯:Oracle教程

oracle報錯(ORA-00600)問題處理,oracleora-00600


告警日志裡這兩天一直顯示這個錯誤:

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

--先嘗試一種,如果一種解決了,就沒必要設置另外一種了。

然後再次執行上面的查詢語句,不報錯啦,嘎嘎

成功啦,(*^__^*)嘻嘻……

讓開發人員在程序裡加上這條命令即可。


ORACLE數據庫中有一個SQL報錯ORA-00600,其中使用了SYS_CONNECT_BY_PATH對一些數據進行匯總,相助

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數據庫修復團隊成員幫您恢復!

詩檀軟件專業數據庫修復團隊
 

對於Oracle ORA-00600 錯誤代碼解析

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數據庫修復團隊成員幫您恢復!

詩檀軟件專業數據庫修復團隊
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved