Um die Start- und Endzeitpunkte für die Wiederherstellung
festzulegen, geben Sie für mysqlbinlog die
Optionen --start-date
und
--stop-date
im DATETIME
an. Nehmen wir beispielsweise an, dass am 20. April 2005 um
genau 10:00 Uhr eine SQL-Anweisung ausgeführt wurde, mit der
eine große Tabelle gelöscht wurde. Um die Tabelle und ihre
Daten wiederherzustellen, könnten Sie das Backup der
vorhergehenden Nacht wiederherstellen und dann den folgenden
Befehl ausführen:
shell>mysqlbinlog --stop-date="2005-04-20 9:59:59" \
/var/log/mysql/bin.123456 | mysql -u root -p
Dieser Befehl stellt alle Daten bis zum durch die Option
--stop-date
angegebenen Zeitpunkt wieder her.
Haben Sie die fehlerhafte SQL-Anweisung, die zum Löschen der
Tabellen eingegeben wurde, erst Stunden später entdeckt, dann
werden Sie wahrscheinlich auch die nachfolgenden
durchgeführten Operationen wiederherstellen wollen. Davon
ausgehend könnten Sie mysqlbinlog noch
einmal unter Angabe eines Startzeitpunkts ausführen:
shell>mysqlbinlog --start-date="2005-04-20 10:01:00" \
/var/log/mysql/bin.123456 | mysql -u root -p
In diesem Befehl werden die SQL-Anweisungen, die ab 10:01 Uhr aufgezeichnet wurden, erneut aufgeführt. Die Kombination aus der Wiederherstellung der Speicherauszugsdatei der vorangegangenen Nacht und der Ausführung der beiden mysqlbinlog-Befehle stellt alle Aktionen mit Ausnahme derjenigen wieder her, die im Zeitraum zwischen 9:59:59 Uhr und 10:01:00 Uhr ausgeführt wurden. Überprüfen Sie die Logdatei, um die exakten Zeiten angeben zu können. Der nächste Abschnitt beschreibt die erforderlichen Abläufe.
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.