Veröffentlicht von & unter Datenbank.

Heute hatte ich auf einen Cloudserver die Meldung.

ORA-01578: Oracle Data Block Corrupted...

Mein Versuch den Block mit RMAN zu recovern schlug fehl, da es sich um eine Oracle XE Version handelte. Unterstützung bietet hier nur die Oracle Enterprise Edition.

Auf https://oracle-base.com/articles/misc/detect-and-correct-corruption fand ich dann aber Hilfe. Mit der SQL fand ich heraus, dass der defekte Block in einem Index lag. So brauche ich den Index nur löschen und neu erstellen.


COLUMN owner FORMAT A20
COLUMN segment_name FORMAT A30
SELECT DISTINCT owner, segment_name
FROM v$database_block_corruption dbc
JOIN dba_extents e ON dbc.file# = e.file_id AND dbc.block# BETWEEN e.block_id and e.block_id+e.blocks-1
ORDER BY 1,2;

Auf einen dedicated Server hatte ich das Problem mit defekten Blocks noch nie. Verwunderlich, dass das gerade jetzt nach einem Umzug auf einen Cloudserver passiert. Ich halte die Sache besser mal im Auge…

Der Index kann dann wie folgt überprüft werden:
Analyze index INDEX_NAME compute statistics;