在客户端执行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(xxx是object_id)以及其它的不一致的东西,在smon清除它们之 前,是不能再进行rebuild index online的,如果要清除它们,需要执行dbms_repare包的online_index_clean过程来处理...
在 9206,9207,10.2.0.1中smon不会很快地清除index rebuild online失败所带来的对象,在9208,10.2.0.2,11g中这个bug才被fixed.所以在9206,9207,10.2.0.1这些版本 中,当我们对大的索引进行index rebuild online时,不要随意地中断rebuild index online操作,否则smon可能需要很久才能清除临时对象。
- 网上有文章说可以通过重启系统或者修改系统表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/