In this Document
Symptoms
Cause
Solution
References
This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review. |
Applies to:
Oracle Server - Enterprise Edition - Version: 9.2.0.6 to 11.1.0.6 - Release: 9.2 to 11.1Information in this document applies to any platform.
Symptoms
While running an online index rebuild your session was killed or otherwise terminated abnormally. You are now attempting to run the index rebuild again and is throwing the error:ORA-08104: this index object ##### is being online built or rebuilt
Cause
A session failure during an online index rebuild can leave the data dictionary in a state reflecting a rebuild is ongoing when in fact it is not.Solution
The dbms_repair.online_index_clean function has been created to cleanup online index rebuilds. Use the dbms_repair.online_index_clean function to resolve the issue.
* Please note if you are unable to run the dbms_repair.online_index_clean function it is due to the fact that you have not installed the patch for Bug 3805539 or are not running on a release that includes this fix. The fix for this bug is a new function in the dbms_repair package called dbms_repair.online_index_clean, which has been created to cleanup online index [[sub]partition] [re]builds. New functionality is not normally introduced in patchsets; therefore, this is not available in a patchset but is available in 10gR2.
- Check your patch list to verify the database is patched for Bug 3805539 using the following command and patch for the bug if it is not listed:
opatch lsinventory -detail
--------------------------------------------------------------------------
Example
SQL> alter index ZL_BD_EXECUTING_B_IDX03 rebuild online;
alter index ZL_BD_EXECUTING_B_IDX03 rebuild online
*
第 1 行出现错误:
ORA-08104: 该索引对象 542089 正在被联机建立或重建
SQL> select object_id,status from dba_objects where object_name=upper('ZL_BD_EXECUTING_B_IDX03');
OBJECT_ID STATUS
---------- -------
542089 VALID
SQL> declare
ret boolean;
begin
ret:=dbms_repair.ONLINE_INDEX_CLEAN(542089);
end;
/
PL/SQL 过程已成功完成。
select * from dba_objects where object_name=upper('ZL_BD_EXECUTING_B_IDX03');
无返回记录,异常索引已被清理.
SQL> create index zl_bd_executing_b_idx03 on zl_bd_executing_b(vdef2) tablespace NNC_INDEX01 online;
索引已创建。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26442672/viewspace-764196/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26442672/viewspace-764196/