oracle11g ora 29927,oracle报错(ORA-00600)问题处理

这篇博客详细记录了在Oracle数据库中遇到ORA-00600内部错误的解决过程。错误日志显示在执行特定SQL查询时触发,查询涉及复杂的连接操作。博主提供了两种解决方案:一是临时禁用哈希连接和哈希聚合;二是通过数据库升级或应用补丁来修复。博主给出了具体的操作步骤,并分享了如何定位和测试SQL语句,以确保问题得到解决。
摘要由CSDN通过智能技术生成

告警日志里这两天一直显示这个错误:

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');

执行报错:

f8e2305b1e0a29e248d1d544721f514b.png

解决办法:

altersessionset"_hash_join_enabled"=false;

df2e25dcf25aeb275adda4531a58ef1a.png

altersessionset"_gby_hash_aggregation_enabled"=false

--先尝试一种,如果一种解决了,就没必要设置另外一种了。

然后再次执行上面的查询语句,不报错啦,嘎嘎

3cb5e3d1f3811675ad2d73e62d40c8a0.png

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

让开发人员在程序里加上这条命令即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值