Tolles aus der MySQL-Trickkiste

Teil 3: MySQL und phpMyAdmin

Kopieren per Dateisystem

Das MySQL-Standard-Tabellenformat MyISAM speichert die Daten zu einer Datenbank in einem eigenen Verzeichnis. Dies lädt natürlich zum direkten Kopieren über das Dateisystem ein. Vorsichtig sein müssen Sie nur, wenn gerade Nutzer in die Tabellen schreiben oder schreiben könnten. In diesem Fall ist die Datenintegrität in Gefahr, da Sie dann eventuell zwei Stände haben. Bei mehreren Tabellen kann es dann sogar vorkommen, dass Referenzen scheitern. Deswegen können Sie mit dem SQL-Befehl LOCK TABLE eine Tabelle sperren. Hier reicht das Sperren für Schreibvorgänge:

Special MySQL und phpMyAdmin: MySQL

© Archiv

Hilfreich: Der SQL-Code kann als Vorlage dienen.

Zusätzlich ist es empfehlenswert, mit FLUSH noch den MySQL-internen Cache zu leeren. Ausführliche Informationen zum Thema erhalten Sie unter http://dev.mysql.com/doc/refman/5.1/de/backu p.html.

LOCK TABLE Tabellenname WRITE

Dumps per phpMyAdmin

In Shared-Hosting-Umgebungen und bei Webservern, die Sie nicht selbst unter Kontrolle haben, fehlt sowohl der Konsolenzugriff als auch die Möglichkeit, Daten aus dem Datenverzeichnis von MySQL direkt zu kopieren.

Dumps per Konsole

Das Erstellen von Dumps mit phpMyAdmin hängt von der PHP-Einstellung für Skript-Timeouts ab und muss immer manuell angestoßen werden. Insofern ist sie für regelmäßige Sicherungen nicht besonders praktikabel. Einfacher geht es über die Konsole beziehungsweise Eingabeaufforderung - wenn Sie einen solchen Zugriff haben. Mittels mysqldump können Sie schnell einen Dump anlegen:

Special MySQL und phpMyAdmin: MySQL

© Archiv

Beweglich: Auch Tabellen lassen sich kopieren.

Basis ist das Hilfsprogramm mysqldump. Vorsicht, hier handelt es sich nicht um die MySQL-Konsole, sondern um ein separates Programm, das in der Systemkonsole aufgerufen wird. Optional können Sie noch eine Liste der Tabellennamen hinter dem Datenbanknamen angeben. Und auch das Komprimieren des Dumps in einem Archiv erledigen Sie direkt in der Anweisung:

mysqldump --user=Benutzername --
password=Passwort Datenbankname >
dump.sql

Sie sollten beim Erstellen des Dumps die Tabellen sperren. Dazu können Sie einfach beim Aufruf die Option --lock-tables anfügen. Ansonsten kann es passieren, dass gerade von Nutzern in die Datenbank geschrieben wird, während Sie die Sicherung vornehmen. Dadurch sind unter Umständen einzelne Tabellen im Dump inkonsistent. Diese Gefahr ist vor allem bei Websites mit vielen Besuchern und häufiger Nutzerinteraktion hoch. Das Sperren und Sichern sollten Sie in diesem Fall aber in Zeiten machen, in denen die Site nicht stark frequentiert ist. Alle Optionen von mysqldump finden Sie unter http://dev.mysql.com/doc/refman/5.1/de/my sqldump.html. Um die Daten wieder einzuspielen, verwenden Sie folgende Zeile:

mysqldump --user=Benutzername --
password=Passwort Datenbankname 
| gzip >dump.sql.gz

Die Datenbank muss in leerer Form schon vorliegen. Nach dem Passwort wird dann noch gefragt. Wenn Sie das Erstellen eines Dumps zum Sichern verwenden, sollten Sie ab und an eine manuelle Test-Wiedereinspielung vornehmen, um sicherzugehen, dass Ihre Dumps auch wirklich klappen. Die genannten Kommandozeilenaufrufe können Sie auf einem Linux- basierten Webserver mit einem Cronjob wiederholt ausführen. Windows bietet mit dem Systemdienst Schedule ähnliche Möglichkeiten. Die meisten Hoster besitzen in ihren Kundenmenüs Eingabemasken, um das Erstellen von Cronjobs zu erleichtern.

cat dump.sql | mysql --user=
Benutzername --password Datenbankname

Eine weitere Alternative zu mysqldump ist mysqlhotcopy. Es erstellt ein sehr schnelles Backup einer Datenbank und kopiert es einfach in ein angegebenes Verzeichnis:

Das Programm übernimmt dabei das Sperren der Tabellen. Es funktioniert allerdings nur mit dem Tabellenformat MyISAM und benötigt Perl. Eine umfangreiche Übersicht mit den Einstellungen finden Sie unter http://dev.mysql.com/doc/refman/5.1/en /mysqlhotcopy.html

mysqlhotcopy Datenbankname
Verzeichnis

Mehr zum Thema

image.jpg
Ratgeber: "Bildbearbeitung"

Der Cloud sei Dank entstehen im Netz immer mehr Werkzeuge, die komplexe Rechenprozesse in einfache Interfaces packen. Das gilt auch für die…
Online-Shop mit Opencart erstellen
Ratgeber: "Web-Business"

Neben Magento fristen verschiedene Shopsysteme ein Mauerblümchendasein. Doch zu Unrecht finden Lösungen wie Opencart wenig Beachtung. (Dr. Holger…
Soziales Netzwerk So.cl
Internet Tipps

Sie möchten sich mit Gleichgesinnten vernetzen, komfortabler Surfen oder Ihren Webstore prominenter bei Google platzieren? Das Internet Magazin hat…
Page-Flip-Aktionen für mobile Apps erstellen
Ratgeber: "CSS"

Wir zeigen Ihnen an einfachen Beispielen wie Sie Page-Flip-Aktionen einbinden. Gerade im mobilen Bereich ist dies sehr beliebt, hierbei verschwindet…
Bilbearbeitung mit Inkscape
Open-Source-Design

In Sachen Grafikprogramme für das Webdesign denkt man zuerst an Fireworks oder Photoshop. Doch auch die Open-Source-Szene hält Anwendungen bereit,…