Indeks rebuild işlemi sırasında alınan ORA-08104 hatasının çözümü

Online olarak bir indeksin  rebuild işlemi sırasında , ilgili oturum beklenmedik şekilde kesildiğinde , ilgili indeks , data dictionary’de aslında rebuild olmamasına rağmen , rebuild işlemi yapılıyormuş gibi kalıyor. Bu sebepten dolayı yeniden ilgili indekisi rebuild yapılmaya çalışıldığında ORA-08104 hatasına sebep olmaktadır.

Rebuild işlemi aşağıdaki gibi hata ile sonlanmaktadır.

SQL> ALTER INDEX kullanici.index rebuild online;
ALTER INDEX kullanici.index rebuild online
*
ERROR at line 1:
ORA-08104: this index object 1234567 is being online built or rebuilt

Bu sorundan ,  dbms_repair.online_index_clean fonksiyonunu çalıştırarak kurtulabilirsiniz. Örnek kullanımı aşağıdaki gibidir. index_object_id yerine sorun yaşadığınız nesnenin id bilgisi gelecektir. Bu bilgiye dba_objects , user_indexes yada all_indexes gibi görüntülerden ulaşabilirsiniz. SYS ile bağlanıp çalıştırmanız gerekmektedir.

-bash-4.3$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Jan 26 09:58:08 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

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

 

Loading

Leave Your Comment