ORA-08104 Problema ao cancelar a Criação de um index online

E ai galera!
Alguns dias atrás passei por esse problema ao parar a criação de um índex Online que foi o erro ORA-08104 , pode ser visto no alert.log com a mensagem

online index (re)build cleanup: objn=24584040 maxretry=2000 forever=0
A solução e simples,vamos executar um bloco com uma rotina que agilizara a limpeza do objeto. O erro é causado por um bug : BUG:3805539 e pode ser solucionado executando a rotina abaixo:
1- Verificando o objeto com problemas

select obj#,flags from ind$ where obj#=24584040;
---------------------------------------------------------------------
OBJ# FLAGS
---------- ----------
24584040 256
-------------------------------------------------------------------------------------

 
2- Executando a rotina de limpeza com SYS

declare
isclean boolean;
begin
isclean :=false;
while isclean=false
loop
isclean := DBMS_REPAIR.ONLINE_INDEX_CLEAN(dbms_repair.all_index_id,dbms_repair.lock_wait);
dbms_lock.sleep(10);
end loop;
end;
/

SQL>
SQL>
SQL> declare
isclean boolean;
begin
isclean :=false;
while isclean=false
loop
isclean := DBMS_REPAIR.ONLINE_INDEX_CLEAN(dbms_repair.all_index_id,dbms_repair.lock_wait);
dbms_lock.sleep(10);
end loop;
end;
/ 2 3 4 5 6 7 8 9 10 11

PL/SQL procedure successfully completed.

 

3- Verificando novamente o objeto com problemas

SQL> select obj#,flags from ind$ where obj#=24584040;

no rows selected

 

Referencia
Oracle Support Doc ID 375856.1 & 1378173.1

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *