Springe zu: Hauptnavigation, Themennavigation, Seiteninhalt, Spezielle Seiten

Backups erstellen und einspielen

In diesem Artikel stelle ich das Programm mysqldump vor, mit dem man Backups von Datenbanken oder einzelnen Tabellen erstellen kann. Außerdem zeige ich, wie ein solches Backup wieder eingespielt werden kann.

Backups erstellen

Die Syntax des Backup-Programmes mysqldump lautet:

mysqldump [options] [db_name [tbl_name ...]]

Hier ein Auszug der möglichen Optionen:

--help oder -?
Zeigt eine Hilfemeldung an und wird dann beendet.
--add-drop-database
Fügt eine DROP DATABASE-Anweisung vor jede CREATE DATABASE-Anweisung ein.
--add-drop-table
Fügt eine DROP TABLE-Anweisung vor jede CREATE TABLE-Anweisung ein.
--add-locks
Setzt jeden Tabellenspeicherauszug zwischen eine LOCK TABLES- und eine UNLOCK TABLES-Anweisung. Hierdurch werden die Einfügevorgänge beim Einspielen der Sicherungs-Datei beschleunigt.
--all-databases oder -A
Die Tabellen aller verfügbarer Datenbanken werden gesichert.
--complete-insert oder -c
Verwendet vollständige INSERT-Anweisungen, die auch Spaltennamen enthalten.
--compress oder -C
Komprimiert alle Daten, die zwischen Client und Server ausgetauscht werden, sofern beide die Komprimierung unterstützen.
--databases oder -B
Erstellt eine Sicherung mehrerer Datenbanken. Normalerweise wird das erste Argument als Datenbankname betrachtet und alle weiteren als Tabellennamen. Bei dieser Option werden alle Argumente als Datenbanknamen betrachtet. Die Ausgabe enthält für jede Datenbank eine CREATE DATAASE- und USE-Anweisung.
--default-character-set=charset_name
Verwendet charset_name als Standardzeichensatz. Wird diese Option nicht angegeben, verwendet mysqldump utf8.
--host=hostname oder -h hostname
Gibt den Hostnamen des MySQL-Servers an. Wird diese Option nicht angegeben, wird standardmäßig localhost verwendet.
--quick oder -q
Diese Option ist nützlich, um ein Backup großer Tabellen zu erstellen. Hier werden die Datensätze datensatzweise abgerufen und nicht temporär im Arbeitsspeicher zwischengespeichert.
--result-file=datei oder -r datei
Das Backup wird direkt in die angegebene Datei geschrieben. Diese Option sollte unter windows verwendet werden, um die Konvertierung von Zeilenumbrüchen in Folgen von Absatzschaltung und Zeilenumbruch zu verhindern.
--user=user_name oder -u user_name
Der angegebene Benutzername wird für die Verbindung mit dem MySQL-Server verwendet.
--xml, -X
Schreibt die Ausgabe des Backups als sauber formatiertes XML.

Das folgende Beispiel erstellt ein komplettes Backup der Datenbank simon des gleichnamigen Benutzers und speichert es in der Datei simon.sql:

simon@etch:~$ mysqldump -u simon -pgeheim -r simon.sql simon

Das gezeigte Beispiel enthält keine Anweisung, die die Datenbank simon vor der Erstellung der Tabellen löscht und neu erstellt. Diese kann mit folgendem Aufruf explizit eingefügt werden:

mysqldump -B --add-drop-database -u simon -pgeheim -r simon.sql simon

Das folgende Beispiel sichert nur die Tabelle kontakte aus der Datenbank simon:

simon@etch:~$ mysqldump -u simon -pgeheim -r kontakte.sql simon kontakte

Einspielen einer Sicherung

Da die meisten Sicherungen keine USE Anweisung enthalten, ist zunächst eine Verbindung mit dem MySQL-Server herzustellen und die Datenbank auszuwählen. Anschließend kann man das Backup einspielen.
Im folgenden Screenshot gehe ich davon aus, dass sich die Datei mit den MySQL-Anweisungen im Heimatverzeichnis des Benutzers befindet und den Namen kontakte.sql trägt. Die für das Einspielen verantwortliche Anweisung heißt SOURCE. Sie führt die Anweisungen der angegebenen Datei aus.

simon@etch:~$ mysql -u simon -pgeheim
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.0.32-Debian_7-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use simon;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> source kontakte.sql;
[...]
mysql> exit
Bye
simon@etch:~$

Datum der Veröffentlichung: Montag, 05.03.2007

Nach oben

Diese Seite drucken