oracle报错(ORA-00600)问题处理
2014-08-15 00:00
603 查看
告警日志里这两天一直显示这个错误:
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');
执行报错:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030180/eadd3f432578f48547f87fd0f939b29c.png)
解决办法:
altersessionset"_hash_join_enabled"=false;
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030180/5e7def029d87be353040a23ed28eccac.png)
altersessionset"_gby_hash_aggregation_enabled"=false
--先尝试一种,如果一种解决了,就没必要设置另外一种了。
然后再次执行上面的查询语句,不报错啦,嘎嘎
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030180/4708ef53655859acadba5839bcf9558b.png)
成功啦,(*^__^*)嘻嘻……
让开发人员在程序里加上这条命令即可。
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');
执行报错:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030180/eadd3f432578f48547f87fd0f939b29c.png)
解决办法:
altersessionset"_hash_join_enabled"=false;
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030180/5e7def029d87be353040a23ed28eccac.png)
altersessionset"_gby_hash_aggregation_enabled"=false
--先尝试一种,如果一种解决了,就没必要设置另外一种了。
然后再次执行上面的查询语句,不报错啦,嘎嘎
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030180/4708ef53655859acadba5839bcf9558b.png)
成功啦,(*^__^*)嘻嘻……
让开发人员在程序里加上这条命令即可。
相关文章推荐
- oracle报错(ORA-00600)问题处理
- ORA-00600 [3020] ORA-10560问题处理
- ORA-00600: internal error code, arguments: [4194] 问题处理
- ORA-00600: 内部错误代码问题处理
- ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]问题处理
- ORACLE10G ORA-20000问题处理详解
- .Net下使用System.Data.OracleClient出现“ORA-12154问题“TNS: 无法处理服务名”问题的解决
- ORA-12638问题处理
- 数据库异常关闭后无法启动问题处理(ORA-01102)
- 如何解决ORA-00600: internal error code 内部错误代码的问题!
- ORA-00600[2662]问题模拟及解决方法
- 【转】oracle10g升级10.2.0.4补丁后,提示ORA-12526: TNS: 监听程序: 所有适用例程都处于受限模式问题处理
- ORA-08102 问题的处理
- ORA-09925: Unable to create audit trail file Linux-x86_64 问题处理
- ORA-00600: internal error code, arguments: [15764] 引起的宕机及处理过程
- expdp-impdp问题及处理过程(ORA-00832,ORA-01552)
- oracle ORA-12526: TNS: 监听程序: 所有适用例程都处于受限模式问题处理
- .Net下使用System.Data.OracleClient出现“ORA-12154问题“TNS: 无法处理服务名”问题的解决
- ORA-00600 [kcbgcur_9]的处理
- ORA-01092: ORACLE 实例终止。强制断开连接 ORA-00704: bootstrap process failure 问题的处理