OLATOracle Log Analysis Tool Abrir a ferramenta
CríticoCorrupção

ORA-08103

Objeto não existe mais (corrupção lógica)

O que significa

O bloco lido pertence a outro objeto ou tem data_object_id inesperado — corrupção lógica, frequentemente após recover de operação NOLOGGING, bug ou objeto truncado/dropado durante a leitura.

Ação imediata

Reexecute a query: se persistir com o mesmo objeto, trate como corrupção; se sumiu, pode ter sido DDL concorrente.

Como diagnosticar somente leitura — seguro de executar

ANALYZE TABLE ... VALIDATE STRUCTURE CASCADE; dbv no datafile; verificar se houve carga NOLOGGING + recover (V$DATAFILE.UNRECOVERABLE_TIME).

Correção definitiva

Recriar o objeto a partir de fonte confiável (export/CTAS do que for legível) ou restore/recover; MOS tem notas de diagnóstico por cenário.

Como prevenir

FORCE LOGGING (obrigatório com standby); evitar NOLOGGING sem backup imediato.

Regras de ouro antes de agir

  1. Preserve o estado atual. Antes de qualquer reparo, copie os arquivos como estão (datafiles, controlfiles, redo) — é a sua única volta se algo der errado.
  2. Diagnostique antes de executar. As consultas desta página são somente leitura; rode-as primeiro e entenda o cenário antes de qualquer comando que altere o ambiente.
  3. Teste fora de produção sempre que possível, e tenha um plano de rollback.
  4. Em corrupção, recovery ou ORA-600: abra um SR no Suporte Oracle. Tentativa e erro nesses cenários costuma transformar um problema recuperável em perda de dados.

Erros relacionados (Corrupção)

Vinicius Gabriel Lana

Vinicius Gabriel Lana

Sócio & CTO na MigraTI Soluções em TI · 8 anos como DBA (Oracle, SQL Server, PostgreSQL, MySQL)