Nach etwas über einem Jahr gibt es ein Lebenszeichen vom MySQLDumper Projekt.
Wir erinnern uns: Am 18.09.2009 wurde die Version 1.24 stable veröffentlicht. Seitdem hat sich hinter den Kulissen viel getan, eine Vorschau auf die nächste Version hat es auch schon gegeben.
Wie man den Dumper beim Provider All-Inkl.com so einrichtet, dass man per Cronjob regelmäßig und automatisch Backups seiner Datenbanken erstellen kann, habe ich hier beschrieben.
Nun wurde zwar nicht die im Preview gezeigte, komplett neue Version veröffentlicht, in die nun aktuellen Version 1.24.2 sind jedoch zwei ganz entscheidende Verbesserungen eingeflossen, die im Support-Forum des Dumpers aus Meldungen von einigen Anwendern hervorgegangen sind.
Zum einen betrifft dies die Sicherung von sehr großen Datenbanken, bei denen auf einzelnen Tabellen Indizes oder Schlüssel liegen. Hierbei konnte es zu einem Timeout kommen, wenn MySQL versucht, nach dem Zurückspeichern der Tabelleninhalte einen Index neu aufzubauen (ALTER TABLE `xxx` ENABLE KEYS). Falls dieses Aufbauen länger dauert als das PHP Ausführungslimit (normalerweise 30 Sekunden), kann es zu einem Internal Server Error oder einer 404 – nicht gefunden Fehlermeldung kommen.
Ganz automatisch kann man dies jedoch nicht umgehen.
Der Dumper wurde um eine Funktion erweitert, die ENABLE KEYS Anweisungen in einer Backupdatei komplett zu ignorieren. Damit werden dann leider auch wirklich die Indizes deaktiviert bleiben. Der Anwender muss also eingreifen und nach einem Restore der Datenbank prüfen, ob es Tabellen mit deaktivierten Indizes / Schlüsseln gibt. Auch dafür wurde eine neue Funktion, um diese Indizes / Schlüssel wieder zu aktivieren. Auch ein Button, um alle Tabellen auf einen Schlag zu aktualisieren ist vorhanden, dabei kann es aber dann wieder zu Fehlermeldungen kommen. MySQL verarbeitet den so abgesetzten Befehl aber trotzdem weiter, bis er abgeschlossen ist. Man muss dann einfach so lange auf den Button klicken, bis es keine Fehlermeldungen mehr gibt. So kann man aber wenigstens auch sehr große Datenbanken im Notfall wiederherstellen.
Die andere Erweiterung betrifft Anwendungen, die auto_increment Spalten in Tabellen mit dem Wert 0 verwenden. Magento z.B. kennzeichnet mit der User-ID 0 den Gast-User. Nullwerte in auto_increment Spalten sind aber normalerweise nicht erlaubt. Das führt bei einem Restore dazu, dass der Wert verändert wird. Das mag Magento aber gar nicht und quittiert das mit der ein oder anderen Fehlermeldung.
Dieser Design-Fehler von Magento wird nun vom Dumper automatisch kompensiert. Der Anwender muss dabei gar nichts beachten, sondern kann sich über einen erfolgreichen Restore freuen.
Die Version 1.24.2 ist ab sofort über die Projekt-Homepage verfügbar.