[+/-]
Dieser Abschnitt erläutert eine Vorgehensweise zur Durchführung von Backups, die eine Wiederherstellung von Daten nach mehreren Arten von Abstürzen gestattet:
Absturz des Betriebssystems
Stromausfall
Absturz des Dateisystems
Hardwareproblem (Festplatte, Hauptplatine usw.)
Die Befehlsbeispiele enthalten keine Optionen wie
--user
und --password
für die
Programme mysqldump und
mysql. Sie sollten diese Optionen nach Bedarf
hinzufügen, sodass der MySQL-Server Ihnen das Herstellen einer
Verbindung gestattet.
Wir setzen voraus, dass die Daten in der
InnoDB
-Speicher-Engine gespeichert sind, die
Transaktionen und automatische Wiederherstellung nach einem
Absturz unterstützt. Ferner wird vorausgesetzt, dass der
MySQL-Server zum Zeitpunkt des Absturzes Daten verarbeitet;
wäre dies nicht der Fall, dann wäre keine Wiederherstellung
erforderlich.
In Fällen von Betriebssystemabstürzen oder Stromausfällen
können wir davon ausgehen, dass die Festplattendaten von MySQL
nach einem Neustart wieder verfügbar sind. Die
InnoDB
-Datendateien enthalten unter
Umständen aufgrund des Absturzes keine konsistenten Daten, aber
InnoDB
liest seine Logs aus und findet darin
die Liste der anhängigen abgeschlossenen und nicht
abgeschlossenen Transaktionen, die noch nicht in die
Datendateien geschrieben wurden. InnoDB
führt für die nicht abgeschlossenen Transaktionen automatisch
einen Rollback aus, die abgeschlossenen Transaktionen hingegen
werden in die Datendateien geschrieben. Informationen zum
Wiederherstellungsprozess erhält der Benutzer über das
MySQL-Fehlerlog. Hier ein Beispielauszug aus einem Log:
InnoDB: Database was not shut down normally. InnoDB: Starting recovery from log files... InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 13674004 InnoDB: Doing recovery: scanned up to log sequence number 0 13739520 InnoDB: Doing recovery: scanned up to log sequence number 0 13805056 InnoDB: Doing recovery: scanned up to log sequence number 0 13870592 InnoDB: Doing recovery: scanned up to log sequence number 0 13936128 ... InnoDB: Doing recovery: scanned up to log sequence number 0 20555264 InnoDB: Doing recovery: scanned up to log sequence number 0 20620800 InnoDB: Doing recovery: scanned up to log sequence number 0 20664692 InnoDB: 1 uncommitted transaction(s) which must be rolled back InnoDB: Starting rollback of uncommitted transactions InnoDB: Rolling back trx no 16745 InnoDB: Rolling back of trx no 16745 completed InnoDB: Rollback of uncommitted transactions completed InnoDB: Starting an apply batch of log records to the database... InnoDB: Apply batch completed InnoDB: Started mysqld: ready for connections
In Fällen von Dateisystemabstürzen oder Hardwareproblemen können wir davon ausgehen, dass die MySQL-Festplattendaten nach einem Neustart nicht verfügbar sind. Das bedeutet wiederum, dass MySQL nicht erfolgreich gestartet werden kann, da einige Datenblöcke auf der Festplatte nicht mehr lesbar sind. In diesem Fall ist es erforderlich, die Festplatte neu zu formatieren, eine neue Festplatte zu installieren oder das zugrundeliegende Problem anderweitig zu beheben. Danach müssen wir unsere MySQL-Daten aus Backups wiederherstellen, d. h. es sollten bereits Backups vorhanden sein. Um dies sicherzustellen, sollten wir eine Sicherungsrichtlinie erstellen.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.