DBAtlas · Atlas für Datenbankbetrieb

Datenkorruption

Symptom

'ORA-01578', 'page corruption', 'checksum mismatch', 'MISCONF', I/O-Konsistenzfehler beim Lesen.

1. Ruhe bewahren und die Ausbreitung stoppen

Panische Eingriffe verschlimmern die Lage. Bestimme zuerst den Umfang und stoppe nach Möglichkeit Schreibvorgänge auf das betroffene Objekt. Ist es hardwarebedingt (Platte/Controller), prüfe auch die OS-/Hardware-Logs – eine Reparatur der DB repariert nicht die Platte.

2. Umfang bestimmen: wie viel ist beschädigt

Betrifft es einen einzelnen Block, eine Seite oder ein Objekt, oder ist es weit verbreitet? Führe eine Integritätsprüfung aus.

Oracle

RMAN> VALIDATE DATABASE;  -- or: SELECT * FROM v$database_block_corruption;

PostgreSQL

-- With data_checksums enabled it shows up in the logs; check indexes/heap with pg_amcheck:
-- pg_amcheck --heapallindexed -d mydb

MySQL

CHECK TABLE customer;  -- for InnoDB, innodb_force_recovery is the last resort

SQL Server

DBCC CHECKDB ('MyDB') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Redis

redis-check-rdb dump.rdb
# AOF (Redis 7+ multi-part: under appendonlydir/, pass the manifest file):
redis-check-aof appendonlydir/appendonly.aof.manifest
# --fix TRUNCATES everything after the corrupted point (writes in that part are lost); back up the directory first:
# redis-check-aof --fix appendonlydir/appendonly.aof.manifest

3. Priorität: Wiederherstellung aus dem Backup

Bei Korruption ist die Wiederherstellung aus einem guten Backup der sicherste Weg. Wird Recovery auf Block-/Seitenebene unterstützt, stelle nur den beschädigten Teil wieder her (Oracle RMAN BLOCKRECOVER, MSSQL Page Restore). Reparaturwerkzeuge (DBCC REPAIR_ALLOW_DATA_LOSS, innodb_force_recovery) VERURSACHEN DATENVERLUST – sie sind das letzte Mittel.

4. Integrität prüfen

Führe nach der Wiederherstellung die Prüfung erneut aus (DBCC CHECKDB / RMAN VALIDATE / CHECK TABLE) und bestätige, dass sie ohne Befund zurückkommt. Prüfe außerdem die Datenkonsistenz auf Anwendungsseite (Zeilenanzahlen, kritische Summen).

5. Ursache: meist Hardware

Korruption entsteht meist durch Ausfälle von Platte, Speicher oder Controller. Teste bzw. ersetze die Hardware, aktiviere Checksummen (data_checksums, PAGE_VERIFY CHECKSUM) und verschärfe die Routine aus Backup und Verifizierung. Plane regelmäßige DBCC CHECKDB / RMAN VALIDATE.

In DBAtlas öffnen →