[oracle][index error] ORA-08102: index key not found, obj# 27063, file 6, block 65802

18 11 2009

Problema

Quando tentei apagar um registro com dados estranhos da base a seguinte mensagem me foi informada:

ORA-08102: index key not found, obj# 27063, file 6, block 65802

Causa

Pesquisando, descobri que esse erro é acontece devido ao índice estar corrompido no banco de dados.
Para descobrir qual o objeto em questão basta pesquisar na tabela de objetos especificando o numero do objeto corrompido, descrito na mensagem.

SELECT * from all_objects WHERE object_id=27063;

O resultado do select acima foi as informações do indice com o problema.

Solução

Solução 1

Para resolver o problema primeiramente tentei dar um rebuild no índice utilizando o seguinte comando:


ALTER INDEX index_name REBUILD;

Após a execução do rebuild tentei remover o registro mas não obtive sucesso.

Solução 2

Minha segunda abordagem foi apagar o índice mesmo, pois, analisando o índice em questão verifiquei que era um índice auxiliar de FK, isso que dizer que o índice pode ser apagado e criado novamente sem muito risco, para fazer isso manualmente basta seguir os seguintes passos:

1) Desabilitar o indice

ALTER INDEX ??index_name?? DISABLE;

2) Remover o indice

DROP INDEX ??index_name??;

3) Recriar o indice


Após apagar o índice foi possível remover o registro e depois disso recriei o índice com o script original.

Se por acaso você não tem o script para recriar manualmente o indice esse SQL abaixo pode te ajudar a recria-lo:

ATENÇÃO: Esse SQL só funciona se o indice é para apenas um campo da tabela, se existir mais de um campo o resultado desse SQL deve ser modificado manualmente.

SELECT 'CREATE INDEX ' || TABLE_OWNER || '.' || INDEX_NAME || ' ON ' || TABLE_OWNER || '.' || TABLE_NAME || '(' || COLUMN_NAME || ');'
FROM dba_ind_columns idx
WHERE INDEX_NAME = '??index_name??'
AND TABLE_OWNER  =  '??schema??';

Referencia:
http://forums.oracle.com/forums/thread.jspa?threadID=61877

Anúncios

Ações

Information

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: