So sieht die Meldung aus
ERROR 1194 (HY000): Table 'wp_options' is marked as crashed and should be repaired
ERROR 145 (HY000): Table './shop/orders' is marked as crashed and should be repairedHäufige Ursachen
- Der Server wurde bei einem Schreibvorgang beendet oder ist abgestürzt: OOM-Killer, Stromausfall, erzwungener Stopp.
- Die Platte war voll, während die Tabelle geschrieben wurde.
- Die Tabelle nutzt MyISAM oder Aria, die keine Absturzwiederherstellung wie InnoDB haben.
- Tabellendateien wurden kopiert, während der Server lief.
- Defekte Platte oder Dateisystemfehler.
Prüfen
- Welche Engine nutzt die Tabelle? (db und Tabelle ersetzen)
mysql -e "SELECT table_name, engine FROM information_schema.tables WHERE table_schema = 'shop' AND table_name = 'orders'" - Die Tabelle prüfen (Lesesperre, solange es läuft)
mysqlcheck --check shop orders - Ist auf der Datenplatte Platz frei?
df -h /var/lib/mysql - Warum ist der Server stehen geblieben? Absturz oder Kill im Log
Lösung
- Zuerst eine Kopie anlegen. Lässt sich die Tabelle noch lesen:
mysqldump shop orders > orders.sql. Sonst die Tabellendateien bei gestopptem Server kopieren. - Reparieren:
mysqlcheck --repair shop ordersoder in SQLREPAIR TABLE shop.orders;. Eine Reparatur kann beschädigte Zeilen verwerfen, vergleiche daher die Zeilenzahl mit deinem Backup. - Klappt es nicht, den Server stoppen und
myisamchk(MyISAM) oderaria_chk(Aria) auf die Dateien anwenden. Vorher eine Kopie der Dateien machen. - Aus einem Backup wiederherstellen, wenn die Reparatur zu viel verliert.
- Die Ursache beheben (Speicher, Platte, Strom) und eine Umstellung auf InnoDB erwägen:
ALTER TABLE shop.orders ENGINE=InnoDB;. Vorher testen, da sich Sperrverhalten und Tabellengröße ändern.
Häufige Fragen
Warum sind nur manche Tabellen betroffen?
Nur MyISAM- und Aria-Tabellen sind so zum Schreiben offen, dass sie bei einem Absturz kaputtgehen können. InnoDB nutzt ein Log zur Wiederherstellung.
Verliere ich mit REPAIR TABLE Daten?
Es versucht, alles zu erhalten, kann aber nicht lesbare Zeilen verwerfen. Darum kommt zuerst die Kopie.