Datenbank-Tipp

MySQL - Backup via Terminal

Auf einem Datenbank-Server mit MySQL steht oft keine grafische Oberfläche oder Helfer wie phpmyadmin zum Sichern der Daten zur Verfügung. Es gibt aber integrierte Helfer bei MySQL, die via Terminal bedient werden.

Lösung: MySQL bringt eine Reihe an Werkzeugen mit sich, mit der Sie auf der Konsole arbeiten können. Diese lassen sich auch hervorragend in Scripten und geplanten, automatisierten Prozessen. Um ein MySQL-Backup auf der Konsole auszuführen, verwenden Sie das Werkzeug mysqldump. Alle Datenbanken des MySQL-Servers sichern Sie mit folgendem Befehl:

mysqldump -uroot -pPasswort --all-databases > sicherung.sql

Die Schalter -u und -p stehen für Benutzer und Passwort. Also in diesem Fall würde Superuser root alle Datenbanken sichern und diese als SQL-Statements in die Datei sicherung.sql schreiben.

Wollen Sie nur eine bestimmte Datenbank sichern, sieht der Befehl so aus:

mysqldump -uroot -pPasswort DatenbankName > sicherung.sql

Das Backup-Tool für die Konsole bietet jede Menge Schalter und Optionen. Zum Beispiel können Sie einen Port für die Verbindung angeben, sollte der Datenbank-Server nicht auf dem Standard-Port 3306 horchen. Ebenso könnten Aministratoren zum Beispiel mit dem Zusatz -X oder --xml eine Ausgabe-Datei erzeugen, die in sauberem XML formatiert ist.

Backup: MySQL-Sicherung auf der Konsole.
Backup: MySQL-Sicherung auf der Konsole.

Bei sehr großen Datenbanken möchten sich Administratoren vielleicht die Option --compact merken. Damit erzeugt mysqldump eine weniger ausführliche Ausgabedatei. Mit diesem Schalter werden Kommentare deaktiviert und die Optionen --skip-add-drop-table, --no-set-names, --skip-disable-keys und --skip-add-locks aktiviert. Somit können Sie etwas Platz sparen.

Mit --flush-log oder -F weisen Sie die Sicherung an, zunächst alle Logdateien des MySQL-Servers auf die Festplatte zu synchronisieren. Um den Speicherauszug und die Synchronisierung der Logs im exakt gleichen Moment zu schreiben, sollten Administratoren -F zusammen mit --lock-all-tables oder --master-data verwenden. Die Option -F setzt RELOAD-Rechte voraus.

Wenn alle Tabellen in MyISAM sind, können Administratoren auch mysqlhotcopy verwenden. Laut offizieller Dokumentation sind Sicherungen und Wiederherstellungen damit schneller. Sie finden alle Schalter und Funktionen auf den dedizierten Seiten für mysqldump und mysqlhotcopy.

Produkte: Funktioniert auf allen Betriebssystemen, auf denen sich MySQL betreiben lässt. (cvi)