[重庆思庄每日技术分享]-ORA-00600 [25027] [x]报错

问题现象:

在用到LOB大对象的业务中,进行数据的插入,失败了,在报警文件中报错:

ORA-00600: 内部错误代码, 参数: [25027], [10], [0], [], [], [], [], [], [], [], [], []   at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)   at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)   at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor)   at System.Data.OracleClient.OracleCommand.ExecuteNonQuery()

环境:

ORACLE 11.2.0.4+REDHAT LINUX 6.4

问题原因:

    该问题是由于Oracle的一个bug导致(参考文档 ID

1608861.1),是由于含有LOB字段的表在插入数据时,一个块(Block)在ASSM metadata L1 bitmap

block中被标示为格式化的,但是在LOB段中被标识为未格式化的。

      ORA-00600[25027][x][0] 中的x表示的是该LOB字段所在的表空间的ts#,即表空间号,第三个参数[0]可能并不总是0 (zero).

    可以使用DBMS_SPACE_ADMIN.ASSM_SEGMENT_VERIFY

存储过程,使用verify_option=>DBMS_SPACE_ADMIN.SEGMENT_VERIFY_SPECIFIC and

attrib=>DBMS_SPACE_ADMIN.BITMAPS_CHECK来验证。

解决方法:

      1.将表export导出,drop表,再imp进去

      2.对lob段做move到新的表空间

           Alter table tbName move lob(&lob_column) store as (tablespace &tbsp);

      3.patch 18024115 & alter system set "_fix_control"='18024115:ON';

由于表太大,上100G以上,通过打补丁18024115解决。

参考 :ORA-00600 [25027] [x] [0] Raised by Insert into LOB (Doc ID 1608861.1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值