Garantiert jeder hat seine Backup-Geschichte mit WordPress oder wird sie noch haben… Für mich und meine Projekte, seien sie nun für Kunden oder privater Natur, ist Datensicherung oder auch Datenmigration ein wichtiges Thema. Es zahlt sich aus, und spart jede Menge Zeit, Kosten und Nerven, ein aktuelles Backup (auf gut Deutsch: eine Datensicherung) an der Hand zu haben.
Die Ausgangslage
Schon seit Jahren gibt es für WordPress jede Menge Werkzeuge in Form von Plugins, die diese Aufgabe mehr oder weniger gut erledigen. Eine Sicherung der Datenbank lösen so ziemlich alle derartigen Plugins ganz gut. Aber damit ist es im Webworker-Alltag nicht getan. Es braucht mehr Funktionen, dazu unten gleich mehr… Eine Sicherung der MySQL-Datenbank könnte man auch direkt anlegen, zum Beispiel via phpmyAdmin. Gleiches gilt für das Anlegen einer gewöhnlichen WordPress-Exportdatei, also einer XML-Datei mit den Inhaltsdaten von Beiträgen, Seiten, Kategorien, Schlagworten (Tags) sowie den Verknüpfungen zu Bilder bzw. Dateien.
Die entscheidende Frage ist:
Wie geht das automatisiert in einer funktionsfähigen, sicheren, komfortablen Form, die regelmäßig zeitgesteuert abläuft?
Mein Plugin-Tipp: BackWPup!
Genau hier kommt mein Plugin-Tipp ins Spiel: BackWPup von Daniel Hüsken, einem deutschen WordPress-Entwickler. Ich nutze das Modul mittlerweile seit Version 1.3.0 und bin hochzufrieden damit. Es erledigt alle oben angerissenen Aufgabenstellungen absolut zuverlässig. Hinzu kommt, dass das Plugin gut gepflegt und unterstützt (neudeutsch: supported…) wird. Dass man damit zusätzliche die deutschsprachige WordPress-Community unterstützt, macht es nur noch attraktiver.
Was genau macht nun BackWPup?
Es integriert sich wunderbar in WordPress selbst (auch optisch!) und nutzt dessen Funktionalitäten aus. Es ist möglich sogenannte Aufträge (Jobs) anzulegen, für die man die eigentlichen Einstellungen vornimmt. Diese Trennung von den wenigen Haupt-Plugineinstellungen zu den Auftragseinstellungen ist ein erster großer Pluspunkt!
Dem Datensicherungsauftrag wird zugeordnet, was alles abgearbeitet wird, wann und wo es hingespeichert bzw. -gesendet wird. Somit ist es sogar möglich, verschiedene Aufträge sinnvoll zeitlich bzw. funktionell/ inhaltlich zu kombinieren. Dabei kommt die cron-Funktionalität von WordPress wie gerufen und sie läuft hier perfekt. Beispiel: Ich möchte einmal im Monat alle Bilder bzw. Daten aus dem Ordner /wp-content/
sichern lassen, aber jede Woche die MySQL-Datenbank inklusive einer WordPress-Exportdatei. Absolut kein Problem. Das könnte man dann nahezu endlos so weiterdenken …
Was ich brauche und nutze
Für mich ist bei den meisten (kleineren) Projekten eine wöchentliche Datensicherung völlig ausreichend. Dabei geht es mir um die MySQL-Datenbanktabellen sowie die WordPress-XML-Exportdatei. Da ich bis jetzt keine automatische Updatefunktion von WordPress nutze, ist ein Datenverlust des /wp-content/
-Verzeichnisses praktisch ausgeschlossen, daher sichere ich diese Daten wie gewohnt via FTP, was ich auch als sinnvolle Praxis erachte. Weiterhin möchte ich die MySQL- und XML-Daten auch in die Dropbox sichern. Genau das erledigt mir BackWPup von Daniel Hüsken zuverlässig in einem Rutsch. Nicht mehr und nicht weniger!
Die Praxis
Seit Spätsommer 2010 nutze ich das Plugin und bin sehr zufrieden damit. Erfreulicherweise trat bisher kein Ernstfall ein, d.h. eine Datensicherung wurde bisher nicht für eine Wiederherstellung benötigt, dennoch ist es, wie gesagt, wichtig, immer aktuelle Sicherungen zur Verfügung zu haben. BackWPup läuft die eingestellte Routine sorgfältig durch, optimiert und checkt auf Wunsch die Datenbanktabellen (was gut ist für die Performance der Webseite!). Im Ergebnis habe ich im definierten Verzeichnis auf dem Server eine eindeutig benannte ZIP-Datei, auf Wunsch dieselbe in der Dropbox, und, auch wichtig: eine ausführliche Logdatei! Auf alle drei Dinge (ja, inklusive der Dropbox!) habe ich via WordPress-Adminbereich einfachen Zugriff, d.h. herunterladen der Dateien oder Ansicht der Logdateien. In den Einstellungen kann hinterlegt werden, wieviele Backups und Logdateien auf dem Server gespeichert werden, zum Beispiel der Wert “10”. Nach erreichen des Wertes wird automatisch die jeweils älteste Datei gelöscht! Selbstverständlich sind bei jedem Punkt unterschiedliche Werte möglich, um etwa den Platz seiner Dropbox zu schonen. Für den kompletten Durchlauf eines Auftrages kann man die Webseite in den Wartungsmodus versetzen lassen, besonders für größere Webauftritte eine sinnvolle Funktion. Unterstützt werden dabei auch die populären WordPress-Plugins “Maintenance Mode”, “WP-Maintenance-Mode” sowie die WordPress .maintenance
-Datei, die dann entsprechend aktiviert und wieder deaktiviert werden. Sollte es wider erwarten beim Sicherungsprozess doch irgendwelche Fehler geben, wird eine Nachricht versandt, an eine frei definierbare E-Mail-Adresse. Somit ist man auch bei Serverwarnungen und -fehlern immer im Bilde.
Was bietet BackWPup noch?
Das Plugin unterstützt neben Dropbox noch weitere Backup-Dienste, so derzeit: Amazon S3, Microsoft Azure, Rackspace Cloud und SugarSync. Die letztgenannten habe ich jedoch nicht selbst getestet, gehe jedoch davon aus, dass es entsprechend läuft. Der Vorteil solcher Drittdienste ist die Unabhängigkeit vom eigenen Webserver bzw. Webhoster, andererseits sind diese wiederum mit Kosten verbunden, wie etwa im Falle von Amazon S3, auch wenn diese im Vergleich oft nicht die Welt sind …
Selbstverständlich unterstützt das Plugin auch das Speichern auf anderen FTP-Servern, hier natürlich auf Wunsch via gesicherter SSL-Verbindung. Eine Zusendung der Sicherung per E-Mail gibt es ebenfalls, von der wird aber im Normalfall abgeraten, weil es da mit der PHP-Mailfunktion entsprechende Beschränkungen gibt; es zudem wenig Sinn ergibt etliche zig Megabytes oder mehr ständig im E-Mail-Konto zu haben.
Weitere Informationen
Weitere Infos gibt es auf deutsch auf der Webseite des Entwicklers, sowie in Englisch ausführlich auf der FAQ-Seite im WordPress.org Repository.
Wichtig sind auf jeden Fall die erforderlichen Serverausstattungen, ohne die das Plugin nicht zuverlässig läuft:
— PHP 5.2.0
— WordPress 2.8, aber besser 3.1+ [es wird eh immer die neuste WP-Version empfohlen!]
— curl (für Amazon S3-, MS Azure-, RackSpace-, Dropbox-Unterstützung)
— gzip (für PCLZIP- und gzip-Archive)
— bzip2 (für bzip2-Archive)
» Ganz wichtig: Das Plugin steht kostenlos zur Verfügung und bietet eine enorme Leistungsfähigkeit! Damit unterscheidet es sich schon von einigen Konkurrenz-Plugins, die entweder kostenpflichtig sind oder keine entsprechende Leistung bieten. — Selbstverständlich sollte man den Entwickler dennoch mit einer Spende unterstützen, denn die gebotene Leistung und auch der sehr schnelle Support sind sehr vorbildlich! Außerdem unterstützt man damit Entwickler der deutschsprachigen WP-Community, und das finde ich immer gut :-)
Hinweis in eigener Sache
Seit einiger Zeit pflege ich die deutsche Sprachdatei für BackWPup, die nun in der Regel auch dem Plugindownload von WP.org beiliegt. Mann kann die Sprachdatei aber auch jederzeit von meiner Materialseite (kostenlos!) herunterladen!
Danke! ;)
sehr geiler Artikel!
Danke, Daniel! Gern geschehen, du hast echt unglaubliches mit dem Plugin vollbracht, kann ich echt nur empfehlen :) Weiter so, und beide Daumen hoch!
@ Daniel Hüsken:
Frage: Der Plugin-Ordner ist mit 5 MB recht umfangreich. Die größten Dateien liegen in backwpup\app\libs\rackspace\share . Was genau machen die und warum sind die so groß?
Und warum braucht es 153 Dateien gegenüber 35 von wp-db-backup (mit gerade einmal 436kb deutlich kleiner)?
Nicht falsch verstehen: Ich teste das jetzt auch mal beim neuesten Projekt. Aber ich würde gerne versuchen, annäherungsweise zu verstehen, wieso das Plugin hier 10x so groß ist und 5x mehr Dateien hat. (Hat das Auswirkungen auf den Speed der Seite? Oder betrifft das nur Backend oder nur beim Backup der DB?)
Und: Was war die Motivation, neben wp-db-backup ein neues Backup-Plugin zu schreiben?
Danke dir :)
PS: Wie gesagt: Nicht falsch verstehen, ich nutze es ja nach dieser tollen Review hier jetzt sogar! Bin nur neugierig und will dazu lernen :)
@JUICEDaniel:
Danke für deine guten Fragen! Ich hoffe mal, das Daniel auch noch hier antworten wird.
Vorerst nur mal meine Einschätzung: “wp-db-backup” besteht ja nur aus einer einzigen (!) PHP-Datei, der Rest im Ordner sind lediglich die Sprachdateien.
BackWPup hat einen völlig anderen Ansatz als Plugin. Es kann sichern, mit erweiterter Cronjob-Funktionalität und speichern auf eigenem Server, fremdem Server, Cloud-Diensten und zur Not auch via E-Mail. Hinzu kommt die Wiederherstellungsfunktion. Das ganze Handling erfordert natürlich viel mehr Aufwand. Es sind ja im Prinzip die Cloud-Bibliotheken, die offenbar das Volumen aufblähen. Aber die werden ja nur auf Wunsch überhaupt benötigt bzw. ausgeführt. Wenn ich einmal pro Woche mitten in der Nacht in eine Cloud sichern lassen, läuft nur dann der Prozess und ich kann die Webseite währenddessen automatisch in den Wartungsmodus entlassen.
Genau dieses ganze Management macht es aus meiner Sicht für Webentwickler, die zahlreiche Clienten betreuen ein hervorragendes Werkzeug.
Das Plugin “wp-db-backup” hat eine Grundfunktion, die perfekt läuft. Hier muss jeder selbst entscheiden, was er einsetzen möchte und zu welchem Zweck und was es für Konsequenzen mit sich bringt.
Überdies ist BackWPup mittlerweile auf Version 2.0 entwickelt worden, die mit WP 3.2 zusammen erscheinen wird. Nochmals komfortabler, verbessert im Code und Handling. Ich bin noch mehr begeistert von dem Plugin.
Fürs Erste und viele Grüße, david :)
Danke die für deine ausführliche Antwort. Das mag sicher einige Fragen beantworten, wobei ich natürlich gerne noch die Antwort vom Entwickler persönlich gehört hätte. (Mir ist schon bewusst, dass sein Plugin mehr kann… vielleicht hätte ich mir beim ein oder anderen Häkchen im Admin-Menü noch eine helfende Erklärung gewünscht, weil ich bei den Begrifflichkeiten nicht immer 100% sicher war, was das jetzt bedeutet (etwa den Backup-Zeitpunkt auswählen finde ich ziemlich fummelig im Vergleich zu wp-db-backup, dafür flexibler. Aber bei den Tagen z.B. würde ich Dropdown statt dieses Scrollrad bei den 30 Tagen machen).
@JUICEDaniel:
Antwort: Die Dateien sind für Reckspace zur Bestimmung des Content Typs einer Datei. Dies brauchen alleine 2,6 MB wie du sicherlich gesehen hast. Ich hab grade noch mal in die Version 2.0 geschaut ob ich sie da noch brauche weil ich dort den Content Type aber anders bestimme werde ich den Ordner entfernen.
Die meisten Dateien des Plugins bestehen aus den Libs die mitgeliefert werden gerade die Microsoft und Amazon Libs für die Anbindung an den Ihre Clouds sind da nicht von schlechten Eltern. ;) Aber ich fange da auch nicht an diese selber zu Programmieren nur damit die kleiner werden und ich mir darüber auch noch Gedanken machen muss. Die habe ich mir schon bei Dropbox und Sugarsync gemacht und sie selber geschrieben auch die lib für Googlestorge musste ich anpassen damit sie meinen Ansprüchen genügt.
Zum Speed der Seite: Das Plugin lädt nur Dateien wenn es Sie wirklich braucht. Das heißt wie David schon geschrieben hat nur beim Backup oder auf einer der Plugin Backend seiten. Die Datei anzahl ist mit Version 2 sogar noch grösser geworden nur dafür wird auch wirklich nur noch code geladen der auch benutzt wird.
Motivation: wp-db-backup mach leider nur Datenbank Backups und sichert keine Dateien. Diese sind aber auch wichtig vor allem wenn es um die hoch geladenen Bilder usw. geht. Ich habe dann länger nach einem Backup Plugin gesucht und wenn ich eins gefunden hatte was annähernd meinen Ansprüchen genügte funktioniert es nicht richtig. Da hab ich dann selber angefangen so ein Plugin zu erstellen.
Keine sorge ich hab das nicht falsch verstanden ich werde ach mal einen Artikel auf meinen Blog schreiben der in etwas das aus diesem Comment wieder gibt, vielleicht stellen sich ja noch mehr Leute die gleichen fragen.
P.S.: erweiterte Hilfe ist in Ver. 2 vorbereitet ich muss nur noch Zeit und lust haben diese zu schreiben;)
Danke Daniel, für deinen Beitrag, ist wirklich hilfreich. Die Arbeit bei 2.0 ist echt Klasse geworden, mit zusätzlichen Hilfetexten wohl nahezu perfekt! Eine Top-Leistung, danke für deine Mühe! Natürlich stelle ich Version 2.0 auch hier gebührend vor!
Super, danke dir!! Echt klasse. (Ich selbst sichere halt die Dateien alle paar Monate von Hand und habe die Bilder zusätzlich auf meinem Computer…)
@ David: Hier fehlt definitiv eine Kommentar abonnieren-Funktion :)
Hallo Daniel, freut mich, dass es hier diesen Austausch gibt :-) Daniel hat inspiriert vom Austausch hier, noch einen Blog-Artikel bei sich geschrieben: bei danielhuesken.de …
Ich mache übrigens auch Dateien-Sicherung manuell – aber Datenbank, XML-Datei, Optimierung/Checken per Plugin & Cronjob. So macht es Laune… ;-)
Kommentare abonnieren: Ja, da habe ich schon mal drüber nachgedacht, aber bisher könnte die Kommentaranzahl hier noch mehr werden und außerdem wollte ich bis jetzt noch ein extra Plugin dafür sparen. Eine Lösung für diese Funktion scheint es ja wohl noch nicht zu geben, oder?
Leider nein. Sollte aber auch nicht allzu Datenbank- oder Ladezeitenintensiv sein, das ist eines der kleineren aber feineren Plugins. Daniel Hüsken bietet es übrigens auch an. :)
Danke – geiles Tool, ftp upload funktioniert genial – 92 sec 200 MB erhalten.
Hallo David,
ich finde backwpup auch wirklich klasse, nur gefällt mir nicht, dass jeder, der die Adresse kennt, einfach so Zugriff auf die logs hat. Das Problem wurde auch im backwpup-Forum angesprochen. Ich selbst bin mehr oder weniger Laie und habe weder Zeit noch Lust, zu sehr in die Tiefen hinabzusteigen. Wie hast Du das gelöst?
Danke sagt Rosi
Danke für deinen Kommentar, Rosi!
Also das Problem existiert in der Form aus meiner Sicht nicht: erstens enthält der Protokollordner am Standard-Platz eine Zufalls-Nr. bei der Installation – die muss erstmal bekannt sein und zweitens hängen dann die Dateinamen darin von deinen Datumseinstellungen etc. ab – wie soll das jemand erraten? Außerdem kann man ja den Ordner anlegen, wo man möchte, z.B. eine Ebene unterhalb dessen, was auf dem Server öffentlich zugänglich ist. Damit wäre das aus meiner Sicht ganz gelöst. Oder man stellt den Speicherwert auf “0”, dann werden keine Protokolle gespeichert. — Für alle anderen Wünsche usw. bitte ins BackWPup Forum gehen – das muss der “Meister” selbst entscheiden, wie er damit weiter umgeht.
Ich hoffe die Anstöße helfen dir etwas weiter :)
Danke, David, für Deine nette Antwort!
Was das Erraten angeht, so habe ich im BackWPup-Forum gelesen, dass man die Logs auch “ergoogeln”könne. Aber, wie gesagt, ich bin Laie und auf Anhieb sagt mir “die Ebene unterhalb dessen, was auf dem Server öffentlich zugänglich ist” erstmals nichts. Insgesamt fehlt mir leider ein kleiner Leitfaden als Hilfestellung für die Konfiguration. So schön das Plugin ist, aber ein Backup-Tool, was auch die Sicherheitsaspekte automatisch berücksichtigt wäre mir doch lieber. Und das ein bißchen Hilfetext beifügt :-)
Dein Blog ist auf jeden Fall sehr lesenswert!
Gruß von Rosi
Ein Suuuuper Leitfaden für BackWPup. Hat mir beim Einrichten meiner Backups sehr weitergeholfen. Vielen Dank dafür!
Danke für den Bericht über das Plugin. Ich habe es in meine Webseite eingebaut Klappt alles sehr gut. Ohne diesen Beitrag wäre ich nicht so schnell auf das Plugin gestoßen, gerade enn man mit WP anfängt.
Toller gut geschriebener Artikel.
Hallöchen. :-)
Nun habe ich schon viiiele Berichte über das Backuppen gelesen, aber noch keinen darüber, wie man ein Backup wiederherstellt.
Folgendes Problem: Backup per E-Mail schicken lassen, danach per phpMyAdmin versucht, die DB zu importieren (Backup war als DB.sql.gz vorhanden)
Danach kam folgende Meldung:
Fehler
SQL-Befehl:
# WordPress MySQL Datenbank Backup
#
# Erstellt: Sunday 5. May 2013 03:15 UTC
# Hostname: localhost
# Datenbank: `amanita_blog`
# ——————————————————–
# ——————————————————–
# Tabelle: `wp_commentmeta`
# ——————————————————–
#
# Lösche jegliche existierende Tabelle `wp_commentmeta`
#
DROP TABLE IF EXISTS `wp_commentmeta` ;
MySQL meldet: Dokumentation
#1046 – No database selected
Hinterher habe ich die DB.sql.gz entpackt und es nochmals mit importieren versucht: DB.sql
Hat wieder nicht funktioniert.
Da stelle ich mir natürlich die Frage, was mir ein Backup nützt, wenn ich es nicht wieder herstellen kann.
Habt ihr das überhaupt einmal ausprobiert? In dem Artikel kann ich jedenfalls nix davon lesen.
Für eine Hilfestellung bin ich natürlich dankbar.
LG
Ich nutze WordPress 3.8.1 und das Plugin 3.1.2 von BackWPup.
Wenn ich das Plugin aktiviere, passiert es wenn man eine Kategorie aufruft, das nur noch eine weiße Seite erscheint, wenn ich das Plugin deaktiviere, dann ist das Problem verschwunden, aktuell aktiviere ich kurz das Plugin mache ein Backup und deaktiviere es wieder, was aber keine Lösung ist ich fand die automatischen Backups um 21 Uhr immer sehr praktisch und vorteilhaft.
Ohne aktiviertes Plugin zeigt er z.B. die Seite http://wicca.eu.com/category/allgemein/ richtig an mit aktivierten Plugin lädt er sehr lang und gibt nur eine weiße leere Seite aus nicht mal das Menü ist sichbar.
Danke im voraus.
Julien
Hallo Julien!
Danke für dein Feedback!
Aktuell kann ich dazu leider nichts sagen, da ich das Plugin zwar auf diversen Seiten laufen habe, aber so ein Fehler mir noch nicht begegnet ist. Klingt auch sehr komisch, ehrlich gesagt, warum das Plugin was im Frontend machen sollte?
Solltest du mein Plugin “BackWPup Humility” aktiv haben, in einer alten Version, das kannst du bedenkenlos löschen.
Ansonsten würde ich dir empfehlen, den offiziellen Support von BackWPup unter WordPress.org: http://wordpress.org/support/plugin/backwpup sowie unter marketpress.de zu kontaktieren.
Viel Erfolg!
Hey, danke für den coolen Artikel!
mei Backup bleibt immer bei 2% stehen (manifest.json mit 6,21 kB wurde zur Backup-Datei-Liste hinzugefügt.) ? Wo könnte der Fehler liegen?
LG Ben
Hi Ben!
Danke für dein Feedback!
Mit dem Fehler weiß ich auch nicht, wo das herkommen könnte, es gäbe so viele mögliche Faktoren… Bitte am besten an den Support wenden unter http://wordpress.org/support/plugin/backwpup bzw. direkt bei MarketPress
Hallo Ben,
meld dich am besten einfach über Google+ oder so direkt bei mir dann können wir uns das anschauen.