WordPress richtig backupen
So aus aktuellem Anlass gibt es heute mal wieder einen kurzen WordPress Artikel. Wie einige von euch vielleicht gemerkt haben – wahrscheinlich durch mein oskarreifes Gejammere auf Twitter – war gestern unser Server von ca. 10 Uhr bis 13 Uhr down. Ein klarer Fall von Shit Happens.
Durch diverse doofe Umstände, war ich nicht in der Lage den Server selbst neu zu starten (was sich jetzt aber geändert hat). Was macht man also in den 3 Stunden voller „Panik“ ohne durchzudrehen? Man überlegt sich, was man alles im Backup drinnen hat und was verloren geht, falls der Server gar nicht mehr hochfährt. Meine Sourcen habe ich noch mal zu hause, da ich ja dort entwickle. Bei der Datenbank sieht es anders aus. Die gibt es nur live und im wöchentlichen … na gut wem mache ich was vor, eher im monatlichen Rhythmus gibt es ein Backup. Nach so einem Schock ist man natürlich eine Woche lang hoch sensibel auf das Thema zu sprechen, danach nicht mehr so. So sind zumindest meine Erfahrungswerte. Was muss also her? Ein automatisches Backup und das jeden Tag.
Um ein effizientes Backup zu erstellen, muss man erst mal wissen, wie WordPress seine Daten strukturiert. Zum Glück ist das eigentlich ganz einfach. Das „Userland“ befindet genau in einem Verzeichnis „wp-content
„, dass sich direkt um Hauptverzeichnis befindet. Hier landen die installieren Plugins und die Themes, die man in liebevoller Kleinarbeit mundgeklöppelt hat. Dieses Verzeichnis ist das einzige auf der Platte, welches man nicht mit einer normalen WordPress Installation wieder herstellen kann, zumindest inhaltlich. Fast hätte ichs vergessen: Im Upload Verzeichnis liegen noch die Bilder, die ihr zu euren Artikel hochgeladen habt. Ist vielleicht auch nicht so uninteressant.
Bei der Datenbank kann man getrost alles mit ins Backup werfen, da der größte Speicherfresser eh die Artikel und die Entwürfe sind und die sollten ja auf jeden Fall täglich den Weg ins Backup finden. Bei mir sind es noch ein paar Zusatztabellen, da ich ja selbst ein wenig an meinem WordPress rumgeschraubt habe.
Wir haben also zwei Verzeichnisse und eine Datenbank zu sichern. WordPress wäre aber nicht WordPress, wenn es das nicht alles schon in einem Plugin vorgefertigt geben würde. Ich habe mich gestern für zwei verschiedene entschieden. Das eine sah sehr gut aus für die Datenbank und das andere kümmert sich um die Verzeichnisse. Ich bin gespannt, ob alles klappt. Zuminbdest fühle ich mich jetzt wieder sicher.
Ich weiß, ich predige immer sauber zu arbeiten und dann mache ich kein Backup! Asche auf mein Haupt. Ich gelobe Besserung.
Das erstere habe ich auch im Einsatz, funktioniert tadellos, hat mir auch schon bei Serverumzügen wertvolle Dienste geleistet. Das mit den Verzeichnissen kannte ich noch nicht, danke für den Tipp.
Ich finde es im übrigen überhaupt nicht schlimm wenn solch ein privates Projekt mal 3-5 Stunden down ist. Im übrigen ist eine Webseite selbst bei 99% Erreichbarkeit im Jahr über 3.5 Tage offline. Da kann „dein“ Server sich noch ein paar Mal verabschieden.
@Ulf: Das beruhigt mich, trotzdem mag ich das Gefühl nicht, wenn der Server down ist. Auch wenn es ein privates Projekt ist, ist es immer noch mein „Baby“ und da will man doch gut drauf aufpassen 😉
Verlier mal dein Kind nur ein paar Minuten auf dem Flughafen… da gehen ähnliche Gedanken durch deinen Kopf! Ist mir selbst noch nicht passiert, aber ich war mal in der Rolle des Kindes 😉
Also ich weiß ja nicht, auf welchem Server du dein Blog betreibst .. aber das Plugin „wordpress-backup“ würd ich ja nur einsetzen wenn ich dazu gezwungen werd. Die pclzip.lib (letzter Stand 07/2007) dürfte wohl eine der langsamsten Möglichkeiten sein, um sich ein Backup zu basteln 😉 Wieso nicht auf die Konsole damit? Da wo so ein Backup eigentlich hingehört .. für die Datenbank verwendet man ja auch eher mysqldump als ein „SELECT * FROM table“, oder? *g
Das Plugin „DBC Backup“ kann ebenfalls als Alternative von WP-DB-Backup genutzt werden. Es nutzt den Cron-Dienst von WordPress und ist sehr einfach zu konfigurieren.
Das Plugin „WordPress Backup“ wollte ich gerade mal testweise installieren. Da kommt sofort ein Fehler, der sich nur durch hartes löschen auf Konsole beseitigen läßt (missing function wp_get_current_user). Hat das Problem noch wer?
@Steffkes: Bei sowas gehe ich lieber weg von selbstgebastelten Lösungen. Natürlich wäre ein CronJob und ein Shellscript einfach gebaut, fand das Plugin aber auch sehr angenehm. Und was die Geschwindigkeit angeht, da sehe ich momentan noch keinen Grund zu optimieren. Es bremst den Server nicht aus.
@Robert: Sorry bei mir kommt dieser Fehler nicht. Kann dir da also nicht wirklich weiterhelfen.
@Nils:
Was spricht denn gegen eine selbstgebaute Lösung? mysqlhotcopy bzw mysqldump + cronjob + rsnapshot und alles ist Klasse oder nicht 🙂
Lieben Gruß
Ja ja, da ist es wieder: das „Do not reinvent the wheel“ – Syndrom! 😉