MySQL-Datenbanken wiederherstellen

Mrz 01

Achtung: Dieser Beitrag ist schon etwas älter.
Es kann sein, dass sein Inhalt nicht mehr aktuell ist, Links veraltet sind oder dass auch niemand mehr auf neue Kommentare antwortet.

Mit Hilfe des Server-Backup Script lassen sich alle MySQL-Datenbanken auf einem Server mit einmal sichern. Dabei werden alle Datenbanken in einer einzelnen *.dbs-Datei gesichert. In diesem Beitrag möchte ich nun zeigen, wie man aus der Sicherung die Datenbanken wiederherstellen kann.

Die Wiederherstellung kann einerseits über phpMyAdmin erfolgen oder direkt über das Terminal. Bei größeren Datenbanken bevorzuge ich immer den Weg über das Terminal, weil es darüber weniger Probleme gibt und der Vorgang auch schneller erledigt ist. Trotzdem möchte ich hier beide Wege vorstellen.

Wiederherstellung in phpMyAdmin

Nachdem die Oberfläche von phpMyAdmin aufgerufen wurde, kann der Import-Dialog mit einem Klick auf »Import« (siehe Screenshot) erreicht werden. In diesem Dialog muss nun die Sicherungsdatei ausgewählt werden und evtl. auch die richtige Zeichenkodierung (in den meisten Fällen ist UTF-8 korrekt) eingestellt werden, fertig. Diese Methode funktioniert allerdings nur, wenn die Sicherungsdatei noch nicht allzu groß ist.

Oberfläche von phpMyAdmin

Über Import können die Datenbanken in phpMyAdmin importiert werden

Wiederherstellung über das Terminal

Bei größeren Datenbanken sollten diese über das Terminal importiert werden. Da die Sicherungsdatei nichts anderes ist, als eine Sammlung von SQL-Anweisungen aller Datenbanken, ist der Vorgang der selbe, wie bei einer einzelnen SQL-Datei:

# mysql -h[Host] -u[Username] -p[Passwort] --default-character-set=utf8 < mysql.dbs

Dieser Vorgang kann jetzt je nach Größe der Datenbanken einige Minuten dauern. Allerdings werden mit diesem Befehl alle Datenbanken wiederhergestellt, die sich in dem Dump-File befinden.

Sollen aus der Sicherungsdatei nicht alle Datenbanken, sondern nur einige wiederhergestellt werden, muss die Datei vorher aufgeteilt werden. Dies kann mit folgendem Skript erledigt werden. Das Skript einfach als »mysql_split« (ohne Dateiendung) abspeichern.

cat $1 | awk 'BEGIN { outfile = "preamble"; x = 1 }
$0 ~ /^-- Current Database/ {
   close(outfile); x = x+1
       outfile = x"-"substr($3,2,length($3)-2); }
       { print $0 >> outfile }'

Nun die angelegte Datei mit der Sicherungsdatei als Parameter aufrufen:

# ./mysql_split mysql.dbs

Die einzelnen Dump-Dateien können nun mit dem selben Befehl wie oben in MySQL importiert werden.

Abonniere den RSS-Feed für weitere Webdesign Tutorials und Artikel.

Tags: ,

Artikel bei del.icio.us speichern, Kommentar-Feed, Trackback-URL

Schreibe einen Kommentar

* Pflichtfeld

Die E-Mail-Adresse wird nicht veröffentlicht.

Der Autor

Bild des Autors Christian Beier

Ich bin Christian Beier, 25, ausgebildeter Mediengestalter, Usability-Experte und Ruby on Rails Entwickler aus Potsdam/Berlin.
Mehr zur Person …

In diesem Weblog schreibe ich über Webdesign, Webdevelopment, Social Media, Usability und auch etwas über die Fotografie.

Tags

Aktuelle Beiträge

Aktuelle Kommentare

Twitternachrichten