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

ORA-01578

Bloco de dados corrompido

O que significa

Corrupção física detectada num bloco (file#, block#). Normalmente hardware/storage, às vezes bug.

Ação imediata

Identifique o objeto atingido e NÃO faça shutdown em pânico — o problema é localizado.

Como diagnosticar somente leitura — seguro de executar

SELECT owner, segment_name, segment_type FROM dba_extents WHERE file_id=&FILE AND &BLOCK BETWEEN block_id AND block_id+blocks-1
  • RMAN: VALIDATE DATAFILE &FILE
V$DATABASE_BLOCK_CORRUPTION.

Correção definitiva

RMAN BLOCKRECOVER (RECOVER ... BLOCK) se houver backup; se índice, rebuild (o índice é reconstruível a partir da tabela).

Como prevenir

DB_BLOCK_CHECKSUM=TYPICAL/FULL, backups com VALIDATE periódico, sanidade do storage.

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)