Datenbanken einfach und zuverlässig sichern mit mysqldumper
Ein Datenbank-Backup ist eine ebenso lästige wie wichtige Pflicht. Insbesondere vor dem Einspielen einer neuen CMS- oder Webshop-Version ist es ein absolutes Muss. Häufig kommt hierfür phpMyAdmin zum Einsatz. Mit diesem Programm lassen sich so ziemlich alle Arbeiten an und mit mySQL-Datenbanken erledigen - auch ein Backup. Das Problem: phpMyAdmin besteht aus PHP-Skripten. Diese werden nach einer bestimmten Laufzeit vom Webserver abgebrochen um dessen Ressourcen zu schonen. Dies geschieht häufig schon nach 30 Sekunden.
Braucht das Skript länger als diese Zeit, so wird es vom Server beendet und das Backup wird nicht vollständig durchgeführt. Das gleiche gilt auch für das Wiedereinspielen eines Backups.
MySQLDumper umgeht dieses Timeout-Problem indem es zunächst nur eine kleine Anzahl von Datensätzen aus der zu sichernden Tabelle ausliest. Dabei merkt es sich, wie weit es gekommen ist und wieviel Skriptlaufzeit noch übrig wären. Nun ruft es sich selbst auf, erhält dadurch erneut die volle Skriptlaufzeit und erhöht die Zahl der zu lesenden Datensätze um 10%. Und so geht das Spiel weiter bis das Programm merkt, dass die verbleibende Restlaufzeit des Skriptes nicht mehr genügt, um die Zahl der Datensätze zu erhöhen, oder bis die maximale Anzahl von 5.000 Datensätzen bei einem Durchlauf erreicht wurde. Damit wird der Timeout-Fehler elegant umgangen. Das gleiche Prinzip benutzt MySQLDumper auch beim Wiederherstellen der Daten aus einer Sicherungsdatei.
Während des Sicherns komprimiert MySQLDumper die Daten, so dass diese Platz sparend auf dem Server abgelegt werden. Das Skript für die Wiederherstellung kann direkt aus einer solchen gepackten Datei lesen. Ein Entpacken auf dem Server ist nicht erforderlich.
Neben diesen Grundfunktionen bringt MySQLDumper noch diverse Komfortfunktionen mit; große Datenbanken automatisch auf mehrere Dateien verteilen; automatisches Löschen veralteter Backups, automatischer Versand der Backup-Datei per FTP auf einen anderen Server, oder eine E-Mail-Benachrichtigung über erfolgte Backupläufe. Ein Perl-Skript gestattet sogar zeitgesteuerte, vollautomatische Backups in Verbindung mit einem Cronjob.