ORA-01578: Oracle data block corrupted (file #, block #)
OracleWhat does it mean?
A data block in the specified datafile is corrupted; Oracle reports that the block failed its consistency check (checksum). This is physical corruption.
Why does it happen?
Disk/hardware failure, storage layer errors, operating system or controller problems, partially written blocks after a power loss, or a corrupt backup/restore.
How to fix it
Confirm the corruption and its extent: RMAN> VALIDATE DATABASE / VALIDATE CHECK LOGICAL DATAFILE n; also run DBVERIFY (dbv) and check v$database_block_corruption. If a backup exists, recover at the block level: RMAN> RECOVER DATAFILE n BLOCK m; or, for all listed blocks, RMAN> RECOVER CORRUPTION LIST; (the older BLOCKRECOVER command has been deprecated since 11g). If it is an index block, rebuild the index. Always check hardware/disk health; the root cause is usually storage.
More from this engine
- ORA-01000Maximum open cursors exceeded
- ORA-00018Maximum number of sessions exceeded
- ORA-28000The account is locked
- ORA-01722Invalid number
- ORA-02049Timeout: distributed transaction waiting for lock
- enq: TX - row lock contentionWait: session blocked on a row-level lock held by another transaction
- log file syncWait: session waiting for LGWR to flush redo to disk on commit