您的位置:首页 > 其它

ORA-08104 online 创建索引取消,删除索引

2012-12-18 14:12 495 查看
今天开发库在线创建一个索引,创建了1个多小时,还没有完成。强制取消后,删除索引报错

重新创建索引,会告诉你该索引已经存在,drop index ,会告诉你该索引被锁,或者是 ORA-08104(this index object xxxxx is being online built or rebuilt) 错误。

该过程失败之前创建的一些临时对象由 SMON 负责清除,糟糕的是, SMON 可能会不作为--我在 9i 上观察是 2 个小时(周期?)才清除掉。

在 10g 版本, Oracle 的 DBMS_REPARE 包新增了: online_index_clean ,能够手工进行清除:

dbms_repair.online_index_clean(
object_id     IN BINARY_INTEGER DEFAULT ALL_INDEX_ID,
wait_for_lock IN BINARY_INTEGER DEFAULT LOCK_WAIT)
RETURN BOOLEAN;


SQL> declare

2 done boolean;

3 begin

4 done:=dbms_repair.online_index_clean(194884);

5 end;

6 /
PL/SQL procedure successfully completed.

Elapsed: 00:00:00.43

再次删掉索引,成功。

参考文档:/article/4906322.html
http://blog.chinaunix.net/uid-22948773-id-3018763.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: