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

Melek Durdu
Mar 11, 2024

--

Merhabalar,

Oracle veritabanında online index drop ya da alter ederken işlem kesildikten sonra tekrar çalıştırıldığında arkada devam ediyormuş gibi aşağıdaki hatayı verir.

SQL> ALTER INDEX HR.IX_EMPLOYEE_ID REBUILD TABLESPACE USERS ONLINE PARALLEL 4 NOLOGGING;
Error at line 1
ORA-08104: this index object 600628 is being online built or rebuilt

Hatayı dbms_repair.online_index_clean kullanarak çözebiliriz. Bunun için hatada bize verilen object numarasını kullanmamız gerekiyor. Aşağıdaki şekilde object numarasından doğru index olup olmadığını sorgulayabiliriz.

SQL> select obj# ,name from obj$ where OBJ#=600628;
OBJ# NAME
- - - - - -
600628 IX_EMPLOYEE_ID

Object id’den index’i sorguladıktan sonra aşağıdaki şekilde dbms_repair.online_index_clean fonksiyonunu kullanarak hatadan kurtulabilriz.

SQL> declare
lv_ret BOOLEAN;
begin
lv_ret :=dbms_repair.online_index_clean(600628);
end;
/

Tekrar index drop ya da alter işlemini çalıştırdığımızda başarılı bir şekilde işlem gerçekleşecektir.

SQL> ALTER INDEX HR.IX_EMPLOYEE_ID REBUILD TABLESPACE USERS ONLINE PARALLEL 4 NOLOGGING;

Index altered.

--

--