ORA-00600[kole_t2u][34]

--今天例行检查数据库的时候发现有两个库都报了ORA-00600: internal error code,arguments: [kole_t2u], [34], [], [], [], [], [], []的错。
--通常ora-600的错误都是oracle内部的bug引起的,安全起见还是查了一下
--参考资料:http://blog.chinaunix.net/uid-20276248-id-3198915.html

--问题原因:
oracle的解释是:对于lob字段的字符处理出现问题。

--出错的地方:
从trace文件中可以看出,出错的程序是
image: oracle@cisdb2 (m000)
image: oracle@DBServer1 (m000)
是mmon的slave进程,mmon是数据库复制awr和ash报告等的维护采样工作,所以是在这期间出的问题

--具体sql:
从trace 文件的current sql部分可以看到,两个错误分别是在插入
wrh$_sql_plan 和 wrh$_sqltext 表的时候出错,
经查验得知,两个表均存在lob对象字段。与猜测的一致


--trace文件1
Unix process pid: 1200210, image: oracle@cisdb2 (m000)

*** ACTION NAME:(Auto-Flush Slave Action) 2014-08-2518:01:10.858
*** MODULE NAME:(MMON_SLAVE) 2014-08-25 18:01:10.858
*** SERVICE NAME:(SYS$BACKGROUND) 2014-08-2518:01:10.858
*** SESSION ID:(6335.61932) 2014-08-25 18:01:10.858
*** 2014-08-25 18:01:10.858
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kole_t2u], [34],[], [], [], [], [], []
Current SQL statement for this session:
INSERT INTO wrh$_sql_plan sp
  (snap_id,
    dbid,
    sql_id,
    plan_hash_value,
    id,
    operation,
    options,
    object_node,
    object#,
    object_owner,
    object_name,
    object_alias,
    object_type,
    optimizer,
    parent_id,
    depth,
    position,
    search_columns,
    cost,
    cardinality,
    bytes,
    other_tag,
    partition_start,
    partition_stop,
    partition_id,
    other,
    distribution,
    cpu_cost,
    io_cost,
    temp_space,
    access_predicates,
    filter_predicates,
    projection,
    time,
    qblock_name,
    remarks,
    timestamp,
    other_xml)
  SELECT
    :lah_snap_id      lsnid,
    :dbid             dbid,
    p.sql_id,
    p.plan_hash_value,
    p.id,
    p.operation,
    p.o               ptions,
    p.object_node,
    p.object#,
    p.object_owner,
    p.object_name,
    p.object_alias,
    p.object_type,
    p.optimizer,
    p.parent_id,
    p.depth,
    p.position,
    p.search_columns,
    p.cost,
    p.cardinality,
    p.bytes,
    p.other_tag,
    p.partition_start,
    p.partition_stop,
    p.partition_id,
    p.other,
    p.distribution,
    p.cpu_cost,
    p.io_cost,
    p.temp_space,
    NULL               access_predicates,
    NULL               filter_predicates,
    NULL               projection,
    p.time,
    p.qblock_name,
    p.remarks,
    p.timestamp,
    p.other_xml
    FROM x$kewra ttrnew atn,x$kewrtsqlplan spn, v$sql_plan p
    WHERE atn.str1_kewrattr =spn.sqlid_kewrspe
      ANDatn.num1_kewrattr = spn.planhash_kewrspe
      ANDspn.sqlid_kewrspe = p.sql_id
      ANDspn.planhash_kewrspe = p.plan_hash_value
      ANDspn.childaddr_kewrspe = p.child_address



--trace文件2
Unix process pid: 446676, image: oracle@DBServer1 (m000)

*** ACTION NAME:(Auto-Flush Slave Action) 2014-08-2521:00:28.216
*** MODULE NAME:(MMON_SLAVE) 2014-08-25 21:00:28.216
*** SERVICE NAME:(SYS$BACKGROUND) 2014-08-2521:00:28.216
*** SESSION ID:(5440.1674) 2014-08-25 21:00:28.216
*** 2014-08-25 21:00:28.216
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kole_t2u], [34],[], [], [], [], [], []
Current SQL statement for this session:
INSERT INTO wrh$_sqltext
  (sql_id, dbid, sql_text, command_type,snap_id, ref_count)
  SELECT sqlid_kewrstx,
          :dbid,
          sqlfulltext_kewrstx,
          cmdtype_             kewrstx,
          :lah_snap_id,
          0                   ref_count
    FROMx$kewrtsqltext


--原因分析:
该错误对应 bug 5017909
当sql的第一千个字节刚好是中文时,clob字段会包含multibytecodepoints,从而触发该600错误
不过这个错误不影响应用以及sql的执行,只是对awr或者V$sql相关的视图有些影响

--解决方法:
修改程序代码,把第一千个字节刚好是中文的sql修改掉
或者升级oracle,该BUG在10.2.0.4 及以后版本的patchset中修复
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值