重新创建索引ORA-08104

客户端执行alter index rebuild online时会首先创建 SYS_JOURNAL_**** 系统表来记录日志,待索引重建完成后将修改动作维护到新的索引上。

在客户端执行ALTER INDEX REBUILD ONLINE时因为系统定义了禁止DROP的触发器,导致操作失败。使用sys用户登入重新创建的时候出现了ORA-08104错误。

SQL> ALTER INDEX BB.IX_ABC REBUILD ONLINE;

ERROR at line 1

ORA-08104: this index object 66144 is being online built or rebuilt.

当我们rebuild index online失败后,smon进程会清除sys_journal_xxx(xxxobject_id)以及其它的不一致的东西,在smon清除它们之 前,是不能再进行rebuild index online的,如果要清除它们,需要执行dbms_repare包的online_index_clean过程来处理...

9206,9207,10.2.0.1smon不会很快地清除index rebuild online失败所带来的对象,在9208,10.2.0.2,11g中这个bug才被fixed.所以在9206,9207,10.2.0.1这些版本 中,当我们对大的索引进行index rebuild online时,不要随意地中断rebuild index online操作,否则smon可能需要很久才能清除临时对象。

  1. 网上有文章说可以通过重启系统或者修改系统表ind$,对产品系统而言,停机不是一个好的解决方案。而修改系统表更是DBA的大忌。采用dbms_repair包的online_index_clean是比较稳妥的解决方案。

本例中SMON十几分钟后自动将之清理,但是在报警日志中没有发现

User:,time:20071209 03:12:09,program:oracle@db1 (SMON),IP:,object:SYS_JOURNAL_67420,DDL: drop table "TAOBAO"."SYS_JOURNAL_67420"

之类的信息。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10522540/viewspace-627466/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10522540/viewspace-627466/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值