|
Dieses Tutorial beschreibt die Sicherung und Wiederherstellung von einzelnen Tabellen bzw. ganzen MySQL-Datenbanken mit dem webbasierten Programm phpMyAdmin. Es wird auch auf die Einschränkungen von phpMyAdmin bei sehr großen Datenbeständen und die entsprechenden Einstellungen in der Konfiguration von PHP und phpMyAdmin eingegangen.
Daten mit phpMyAdmin exportieren und importieren
Nahezu alle Hosting Anbieter bieten zur Verwaltung der MySQL Datenbanken das Programm phpMyAdmin mit an. Es bietet eine komfortable Möglichkeit, nahezu alle Verwaltungsaufgaben für die Datenbanken webbasiert zu erledigen.
MySQL-Datenbank Backups mit phpMyAdmin erstellen
Nach der Anmeldung in phpMyAdmin sehen Sie im linken Teil des Bildschirms eine Liste der Tabellen, die die Datenbank enthält. Im rechten Teil sehen Sie oben eine Reihe von Reitern mit den verfügbaren Optionen.

Um eine Sicherung der Datenbank anzufertigen klicken Sie oben auf den Reiter Exportieren. Es öffnet sich eine neue Eingabemaske. Im linken Block Exportieren haben Sie die Möglichkeit, durch das Drücken der Strg-Taste und das Anklicken der Tabellennamen einzelne Tatellen auszuwählen, die exportiert werden sollen. Um eine Sicherung der gesamten Datenbank zu erstellen klicken Sie auf Alle auswählen.

Auf der rechten Seite finden Sie die Blöcke Struktur und Daten. Um ein Backup der Daten zu erstellen, sollte sowohl der Export der Struktur als auch der Daten ausgewählt sein.
Damit beim Einlesen der Daten keine Probleme entstehen sollte auf jeden Fall die Option AUTO_INCREMENT-Wert hinzufügen aktiviert sein. Die Option Mit 'DROP TABLE' sollte bei einem Export zu Sicherungszwecken ebenfalls aktiviert sein. Sie bewirkt, dass im Export SQL-Befehle zum Löschen der Tabellen mit eingefügt werden, so dass die eingelesenen Daten eventuell bereits vorhandene Tabellen überschreiben. Aktiviert man diese Option nicht, müssen vor dem Einlesen des Backups erst alle in der Sicherung enthaltenen Tabellen manuell gelöscht werden, damit sie wieder erstellt werden können.
Im Block Daten sollten die beiden Optionen Vollständige 'INSERT's und Erweiterte 'INSERT's aktiviert sein.
Um die Sicherung zu starten aktivieren Sie nun im unteren Bereich des Formulars noch die Option Senden und bestätigen Sie mit OK.

Es öffnet sich nun ein Download-Dialog. Wählen Sie ein passendes Verzeichnis, wo Sie das Backup der Datenbank speichern möchten und bestätigen Sie den Download.
MySQL Backup mit phpMyAdmin wieder einlesen
Um ein früheres Backup wieder einzulesen wählen Sie nach dem Login in phpMyAdmin oben rechts den Reiter Importieren.

Zunächst wählen Sie im Block Datei zum Importieren die Sicherung von Ihrer Festplatte über den Button Durchsuchen aus. Die Zeichencodierung der Datei wird bei MySQL Versionen (ab 4.1) in aller Regel utf8 sein. Sollten Sie nach dem Import der Daten auf Ihrer Webseite Probleme mit der Darstellung von Umlauten haben, haben Sie beim Import die falsche Zeichencodierung verwendet. In diesem Fall importieren Sie die Daten erneut und wählen Sie bei der Zeichencodierung latin1 aus. Die Option Teilweiser Import ist etwas kritisch und sollte nur im Notfall verwendet werden, wenn eine Sicherung nicht eingelesen werden kann – mehr dazu später bei den Einschränkungen beim Einsatz von phpMyAdmin.
Bestätigen Sie den Import jetzt mit OK. Der Uploads des Backups kann einige Zeit in Anspruch nehmen. Wenn alles klappt sollte aber nach einiger Zeit eine Erfolgsmeldung erscheinen:

Einschränkungen beim Einsatz von phpMyAdmin
Der größte Vorteil von phpMyAdmin – die einfache Bedienbarkeit über eine webbasierte Oberfläche – ist zugleich auch der größte Nachteil. Dadurch dass phpMyAdmin aus PHP-Scripten besteht, unterliegt es je nach Konfiguration des Servers Einschränkungen.
Bei kleineren Datenbanken ist dies in der Regel kein Problem. Die Datenbanken von Online Shops oder großen Content Management Systemen neigen aber dazu im Lauf der Zeit auf mehrere hundert Megabytes anzuwachsen. Hier stößt phpMyAdmin früher oder später an seine Grenzen. Während das Erstellen von Backups meist noch funktioniert, klappt früher oder später das Wiederherstellen der Sicherungen nicht mehr.
Der Grund hierfür liegt kurz gesagt an drei Beschränkungen, die in der Konfiguration von PHP festgelegt werden:
Maximale Upload-Größe für PHP Scripte
In der PHP Konfiguration ist über die Optionen upload_max_filesize und post_max_size festgelegt, wie groß eine Datei maximal sein darf, um über ein PHP Script auf den Server geladen zu werden. phpMyAdmin gibt den Wert dieser Option in der Maske zum Import von Daten aus:

Wenn Ihre Sicherung größer ist als dieser Wert, so ist schon der Upload der Datei auf den Server nicht möglich. Ein Einlesen der Daten ist dann unmöglich, außer es handelt sich um einen Server, auf dem Sie selbst in die PHP-Konfiguration eingreifen können.
Maximale Laufzeit für PHP-Scripte
PHP Scripte unterliegen weiterhin in der Regel einer Laufzeitbegrenzung, damit nicht einzelne Scripte den ganzen Server lahm legen können. Diese Begrenzung wird in der PHP Konfiguration über die Option max_execution_time festgelegt und ist meist auf 30 Sekunden begrenzt. Das Einlesen von großen Sicherungen dauert oftmals länger, so dass phpMyAdmin vom Server beendet wird, bevor alle Daten eingelesen sind.
phpMyAdmin versucht, die maximale Laufzeit vor dem Import von Daten selbst zu verlängern. Dies klappt allerdings nur dann, wenn der safe_mode auf dem Server global bzw. zumindest für den Account in dem phpMyAdmin installiert ist deaktiviert wurde. Andernfalls ist der Import von großen Datenmengen ebenfalls nicht möglich.
In der Konfigurationsdatei von phpMyAdmin ist hierfür eine Option vorgesehen:
// maximum execution time in seconds (0 for no limit)
$cfg['ExecTimeLimit'] = 300;
Falls Sie Zugriff auf die Datei haben und der Safe Mode nicht aktiv ist, können Sie diesen Wert erhöhen, um größere Sicherungen auch mit phpMyAdmin einlesen zu können.
Maximale Speicherbelegung für PHP Scripte
Auch die maximale Menge an Arbeitsspeicher, die ein PHP Script belegen darf ist in der PHP Konfiguration beschränkt. Sie ist über die Option memory_limit festgelegt. Der Standardwert sind 8 MB.
Auch diese Einschränkung kann bei großen Sicherungen zu Problemen führen. Wie bei der Beschränkung der maximalen Laufzeit kann diese Option aber von einem Script während der Laufzeit geändert werden, wenn der Safe Mode nicht aktiviert ist. In der Konfiguration von phpMyAdmin kann die Speichermenge, die phpMyAdmin anfordern soll ebenfalls eingestellt werden:
$cfg['MemoryLimit'] = '16M';
Ist der Safe Mode aktiv hat diese Einstellung keinen Einfluss und Sie haben keine Möglichkeit Backups die das Speicherlimit sprengen mit phpMyAdmin einzulesen. (Siehe dazu auch unser )
Weiterführende Informationen
Trackback(0)
|