MyISAM Tabellen reparieren

MyISAM Tabellen arbeiten nicht transaktionsorientiert und können beschädigt werden, zum Beispiel wenn mysqld während eines Schreibzugriffs gewaltsam beendet wurde, ein Hardwarefehler vorliegt und ähnliche Katastrophen. Aufmerksam auf ein solches Problem macht neben unvollständigen oder fehlerhaften Ergebnissen einer Datenbankabfrage die Fehlermeldung:

Incorrect key file for table: ‘…’. Try to repair it

In der Regel lassen sich die beschädigten Tabellen mit repair table your_table; wieder in einen definierten Zustand versetzen. Wenn es schlecht läuft, können aber auch einzelne Datensätze dabei zerstört werden. Kluge Menschen halten darum ein tägliches Backup ihrer Datenbank vor. :)

Wenn Datenbanktabellen ohne erkennbaren Grund (zum Beispiel Strom- oder Hardwareausfall) öfters beschädigt werden, ist gut beraten die Serverkonfiguration genauer zu untersuchen oder den Hoster zu wechseln.

ext2 unter Windows

Linux ist oft die letzte Rettung, um Daten von einer zerstörten Windows Partition zu retten. Das Problem ist nur, wohin die Daten sichern? Die Schnittmenge der von Windows und Linux unterstützten Dateisysteme bildet FAT32. FAT32 hat viele Unzulänglichkeiten, von denen in Praxis am schwersten wiegt, dass Dateien nicht größer als 4 GB sein dürfen. Das Spiegeln einer Partition mit dd wird damit unmöglich, ohne das Dump in mehrere kleine Dateien zu splitten.
Der Schreibzugriff auf NTFS-Volumes ist unter Linux nur auf Umwegen über captive Userland”treiber” zu empfehlen, wenngleich der im Linux-Kernel implementierte NTFS-Support seit Version 2.6.12 nicht mehr als experimentell eingestuft wird. Captive kann jedoch leider nicht immer genutzt werden, da dazu der original Treiber ntfs.sys von Microsoft vorliegen muss. Außerdem ist der Zugriff über captive auf NTFS-Volumes sehr langsam, da ein erheblicher Overhead durch die API-Emulation entsteht.

Einen Ausweg aus der Misere bietet explore2fs, ein Open Source Tool für Windows, das es ermöglich ext2 und ext3 Partitionen und Images zu öffnen. Der Lesezugriff funktioniert damit auf ext2 und ext3 formatierte Volumes sehr zuverlässig, so dass es kein Problem darstellt auch größere Datenmenge von einer NTFS-Partition unter Linux zu sichern, um sie später unter Windows mit Hilfe vom explore2fs wiederherzustellen.