Blogbeitrag

09 | 052010

Automatisches Backup der WordPress-Datenbank

MySQLDumper und WP-Maintenance Mode gemeinsam nutzen.

Geschrieben von um 20:14 Uhr

Nichts ist für einen Webseitenbetreiber wichtiger, als ein aktuelles Backup seiner Daten zu haben. Denn was ist schlimmer als ein gut laufendes Projekt zu haben, welches ins Nirvana geschickt wird durch einen Servercrash? Viele Webseitenbetreiber sind im Besitz eines gemieteten Servers und nicht jeder Webmaster gibt einiges mehr an Geld aus für einen Managed Server. Somit ist man auch verantwortlich für das Backup der Daten auf dem Server. Und hier fängt meist das Dilemma an. Man kümmert sich nicht richtig um die Sicherung der Daten und vergisst dann vielleicht auch irgendwann dieses Thema, aber dies kann sich irgendwann rächen. Spätestens wenn der Server abschmiert oder vielleicht sogar ein Defekt in der Hardware vorliegt, kann das Geheule groß sein, wenn im schlimmsten Falle einige Jahre der Webseite einfach so mal ausgelöscht werden.

Dabei ist der Verlust der Daten der meist vorhandenen Datenbank noch am schlimmsten, da hier ja in der Regel alle Einstellungen z.B. von WordPress gespeichert werden, alle textliche Inhalte enthalten sind und alle wichtigen Informationen gespeichert werden, die den Blog oder die Webseite erst zum Leben erwecken. Die Datenbank wird auch täglich mit neuen Daten gefüttert, anders als die PHP- oder Bilddateien der Webseite. Man kann hier den Verlust der Datenbank gleichsetzen mit dem Verlust des Gehirns beim Menschen.

Backup der Datenbank

Hier kann man sich aber mittlerweile mit einfachen Mitteln sehr schnell vor einem solchen Supergau schützen. Eine sehr gute Möglichkeit, die ich selbst schon mehrere Jahre erfolgreich einsetze, ist die Sicherung der Datenbank mit Hilfe des kostenlosen Backupscripts „MySQLDumper“. Dieses kann auf jedem Server installiert werden, auf dem man Zugriff zur Datenbank hat und per FTP auf das Dateiverzeichnis seiner Webseite zugreifen kann. Somit ist es nahezu von jedem Webmaster nutzbar, da diese Funktionen auch Voraussetzung sind für das Betreiben einer Webseite oder eines Blogs.

Eine wichtige Funktion des Dumpers ist es, auch zeitgesteuerte automatische Backups der Datenbank anzulegen. Somit kommt man nicht mehr in die missliche Lage, das Backup zu vergessen und man hat immer ein aktuelles Backup, auf das man notfalls zurückgreifen kann.

Wartungsseite während Backup der Datenbank

In der Zeit, in der ich mich noch um die Sicherung von Foren gekümmert habe, war eine Unterfunktion des Dumpers sehr nützlich, nämlich das Forum in der Zeit der Datenbanksicherung in den Wartungsmodus zu versetzen. Somit konnte man sicherstellen, dass eine ordentliche Sicherung der Datenbank angelegt werden konnte, da in dieser Zeit keine weiteren Zugriffe auf die Datenbank möglich waren. So konnte z.B. kein angemeldeter Nutzer einen Beitrag schreiben, der dann nicht mehr im Backup vorhanden ist oder kein Plugin mehr statistische Daten in der Datenbank ablegen. Der weitaus wichtigere Punkt war aber, dass die gesamte Performance des MySQL-Servers für das Backup zur Verfügung gestanden hat. Denn ein solches Backup kann mitunter sehr viel Leistung verlangen je nach Größe der Datenbank. Und es gäbe keinen schlechteren Moment für den MySQL-Server zum abrauchen, als der Moment des Backups.

Damit das Forum aber in den Wartungsmodus versetzt werden konnte, musste dieses aber erst einmal eine solche Funktion mitbringen, was bei den meisten Plattformen auch der Fall war. Hier konnte dann im Dumper eine SQL-Anweisung eingetragen werden, mit der dann der Dumper sich automatisch um das Einschalten des Wartungsmodus kümmerte. Nun sind wir aber hier nicht in einer Forensoftware, sondern bei WordPress, also was tun?

Hier hat Frank Bültge schon im Jahre 2005 einen wichtigen Grundstein gelegt, als er sich um die Weiterentwicklung des Plugins „!Wartungsmodus“ kümmerte, welches mittlerweile bekannt ist unter dem Namen „WP Maintenance Mode“. Hier hatte man bisher schon die Möglichkeit, seinen Blog in den Wartungsmodus zu versetzen, wenn man z.B. Änderungen am Design vornimmt oder aber auch, wenn man ein Datenbankbackup durchführt. Nur musste man den Blog bisher immer manuell in den Wartungsmodus schicken, es gab keine Möglichkeit, dies automatisiert zu tun.

Mit der neuen Version 1.5.9 des Plugins hat sich dies aber jetzt geändert! Nun ist es auch möglich, dass der MySQLDumper mittels des Plugins von Frank Bültge einen WordPress-Blog abschaltet während des Backups der Datenbank. Und dies kann gerade für große Blogs mit einer gut gefüllten Datenbank von Vorteil sein, da hier ein Backup durchaus etwas Zeit in Anspruch nehmen kann.

Voraussetzungen für die Funktion

Um diese Funktion überhaupt nutzen zu können, müssen folgende Voraussetzungen erfüllt sein:
  • Voll funktionsfähige Installation des MySQLDumpers. Hier gibt es ausführliche Hilfe im Supportforum des Dumpers. Es gibt hier viele Tutorials in Wort und Video und die Installation ist einfach durchzuführen.
  • Funktionsfähige automatische Sicherung der Datenbank. Der Dumper muss bereits so eingerichtet sein, dass die automatische Backupfunktion läuft. Hierzu gibt es ebenfalls ein ausführliches Tutorial im Supportforum des Dumpers und jede Menge Hilfe.
  • WP Maintenance Mode. Der WP Maintenance Mode muss installiert sein, außerdem muss er mit den nötigen Einstellungen für das Aussehen der Wartungsseite versehen sein. Hier ist zu erwähnen, dass für meinen folgenden Lösungsansatz kein eingerichteter Countdown genutzt werden muss, da wir dem Dumper diese Steuerung überlassen.

Einstellen der Funktion

Wir öffnen die Übersichtsseite unseres MySQLDumpers und gehen in die Konfiguration. Dort sehen wir unter dem Punkt „Datenbanken“ die beiden Punkte „Command before Dump“ und „Command after Dump“. Diese beiden Funktionen sind dazu da, dem Dumper zu sagen, was er vor der Sicherung der Datenbank tun soll und was nach der Sicherung. Hier speichern wir nun jeweils eine SQL-Anweisung ab, die den Wartungsmodus aktiviert bzw. deaktiviert.

Dazu klicken wir auf den Link „SQL-Befehle“. Hier haben wir in der Sparte „SQL-Befehle“ den Link „neuer Befehl“, den wir nun anklicken. Darunter öffnet sich dann ein Fenster, in dem wir erst einmal einen Namen vergeben für die Anweisung. In meinem Beispiel „Wartungsmodus aktivieren“ neben dem Namen wird das SQL-Kommando eingegeben.

Dabei nehmen wir folgendes Kommando:

UPDATE `wp-table`.`wp-praefix_options` SET `option_value` = '1' WHERE `wp-praefix_options`.`option_name` = 'wp-maintenance-mode-msqld';


Dieser Befehl muss nun aber an den rot markierten Stellen noch an die eigenen Bedürfnisse angepasst werden.

wp-table:

Hier kommt der Name der Datenbank hinein, in der Ihr Euer WordPress installiert habt. In meinem Beispiel heißt die Datenbank „beedy“.

Achtung! Diese Änderung müsst Ihr zweimal durchführen in dem SQL-Befehl!
wp-praefix-options:

Hier muss der Name der Tabelle „options“ Eurer WordPress-Datenbank genutzt werden, je nachdem welches Präfix Ihr in Eurer Datenbank nutzt. In der Regel ist hier der Name „wp_options“ in Gebrauch, wenn Ihr das Präfix nicht geändert habt.

Habt Ihr den SQL-Befehl nun angepasst, speichert Ihr den Befehl mit „save“ ab. Nun muss noch ein zweiter Befehl angelegt werden wie oben beschrieben, mit dem Ihr den Wartungsmodus noch deaktivieren könnt. Dazu nutzt Ihr folgenden SQL-Befehl:


UPDATE `wp-table`.`wp-praefix_options` SET `option_value` = '0' WHERE `wp-praefix_options`.`option_name` = 'wp-maintenance-mode-msqld';


Hier müsst Ihr die gleichen Punkte wie im ersten Befehl angepassen. Als Name bietet sich hier „Wartungsmodus deaktivieren“ an. Habt Ihr beide Befehle angelegt, sollte es so aussehen, wie auf meinen Screenshot.

Um sicher zu gehen, dass Eure SQL-Befehle funktionieren, könnt Ihr nun ganz oben in dem Dropdown-Feld neben „SQL-Befehle“ Eure angelegten Befehle auswählen und dann rechts auf „SQL-Befehl ausführen“ klicken.

Ist alles richtig eingegeben, werdet Ihr nach dem Befehl für das Aktivieren des Wartungsmodus sehen, das sich Euer Blog  nun auch im Wartungsmodus befindet.

Habt Ihr beide Befehle getestet könnt Ihr zurückgehen in die eigentliche Konfiguration.

Hier wählen wir nun nur noch in der Kategorie „Datenbanken“ die jeweiligen Befehle aus:

Command before Dump → Wartungsmodus aktiviert

Command after Dump → Wartungsmodus deaktiviert

Danach darf nicht vergessen werden, die Einstellungen zu speichern! Habt Ihr das getan, wird zukünftig während der Sicherung der Datenbank Euer Blog in den Wartungsmodus versetzt und nach Beenden der Sicherung wieder freigeschaltet!

Vergesst aber bitte nicht, dass Euch diese Sicherung nichts bringt, wenn Ihr diese nur auf dem Server liegen lasst. MySQLDumper bietet hier z.B. die Möglichkeit an, das Backup der Datenbank per Email zu verschicken. Dies kann aber unter Umständen problematisch werden, je nach Größe des Backups. Und Eure restlichen Dateien wollen ja auch gesichert werden.

Kleiner Tipp am Rande

Da nicht jeder über mehrere Server verfügt, auf die man Backups automatisch verschieben kann, kann man hier ganz einfach die automatischen Backupdateien per FTP herunterladen. Hat man zusätzlich noch was an den Dateien von WordPress geändert, lohnt sich hier, den gesamten WordPress-Ordner Eures Webservers herunterzuladen. Somit hat man ein komplettes Backup seines Blogs inklusive der Datenbank.


Abschliessend möchte ich mich nochmals ganz herzlich bei Frank bedanken, der sich die Mühe machte und die zusätzliche Funktion in sein Plugin einbaute!

Meiner Meinung nach ist somit wieder ein Plugin ordentlich aufgewertet worden und stellt dem Benutzer weitere nützliche Funktionen zur Verfügung!

Beitragsdetails

Tags » , , , , , , , «

Kategorie » WordPress «

Trackback: Trackback-URL |  Kommentar-Feed: RSS 2.0 | 1797 Worte

Der Autor

gravatar

Beitrag kommentieren

Trackbacks: 4

  1. 1

    Tweets die little beedy inside - Automatisches Backup der Wordpress-Datenbank erwähnt -- Topsy.com 10.05.2010 um 01:14 Uhr

    [...] Dieser Eintrag wurde auf Twitter von webspitzel erwähnt. webspitzel sagte: Anleitung für automatisches Backup für WordPress – Datenbank http://icio.us/4jvclz [...]

  2. 2

    wp-popular.com » Blog Archive » little beedy inside – Automatisches Backup der Wordpress-Datenbank 10.05.2010 um 02:19 Uhr

    [...] more from the original source: little beedy inside – Automatisches Backup der WordPress-Datenbank Tags: backup, datenbank, [...]

  3. 3

    WP Maintenance Mode & MySQLDumper – bueltge.de [by:ltge.de] 10.05.2010 um 11:38 Uhr

    [...] Plugins ist es nun also möglich, dass man den Eintrag setzt und der Wartungsmodus ist aktiv. Eine anschauliche Anleitung gibt es bei Stefan, der sich an die Arbeit gemacht hat und ein bebildertes Tutorial erstellt hat. [...]

  4. 4

    WP Maintenance Mode review, discussions, does it work, and ratings on Loadwp.com | Loadwp.com 18.08.2011 um 02:36 Uhr

    [...] = How to: Backup with maintenance mode and MySQLDumper (illustrated Tutorial in german language) = Please visit Automatisches Backup der WordPress-Datenbank [...]

Kommentare: 15

  1. 1

    Tarik 09.05.2010 um 21:54 Uhr

    Schöner Artikel!

    Tatsächlich habe ich früher nie BackUps gemacht und so hat es meinen Blog mit damals vielleicht 15 Artikeln getroffen.

    Ich war extrem angep***t, aber im Nachhinein bin ich froh darüber, denn mittlerweile habe ich einen etwas umfangreicheren Blog, von dem ich auch regelmäßig BackUps anlege.

    Wenn ich ehrlich bin, mache ich die aber per Hand, da mir alles andere zu viel Arbeit war und damals beim ersten Versuch nicht auf Anhieb geklappt hat…

  2. 2

    Stefan 09.05.2010 um 22:36 Uhr

    Hallo Tarik,

    vielen Dank für das Lob!

    Vielleicht willst Du es ja jetzt noch einmal versuchen, das Backup zu automatisieren, es ist eigentlich nicht sonderlich schwierig. Denn früher oder später werden die Intervalle der Backups immer größer, glaub mir! ;-)

  3. 3

    Tanja 09.05.2010 um 23:32 Uhr

    Nette Anleitung die Du da zusammengebastelt hast, wirklich schön und ausführlich. Da hast Du auf jeden Fall ein dickes Lob verdient ;-)

    Ich persönlich bleib aber trotzdem bei meinem kleinen und einfachen Script, das via Cronjob das alles außerhalb von WordPress ganz alleine und automatisch erledigt.

  4. 4

    Stefan 10.05.2010 um 00:07 Uhr

    Hallo Tanja,
    auch Dir herzlichen Dank für das Lob!

    Sicherlich gibt es unendliche Möglichkeiten zum Sichern der Daten und der Datenbank. Ich persönlich kann aber nur den Dumper empfehlen, da er mir schon so manches Mal sehr gute Dienste geleistet hat.
    Und gerade wenn die Datenbank eine gewisse Größe erreicht hat, kann es mit dem Import nach einem Crash oder Umzug zu erheblichen Problemen kommen.
    Hier kann der Dumper eben mehr als nur ein einfaches Script. Und das mit dem Maintenance-Mode ist dabei noch ein Sahnehäubchen, welches noch einen Ticken mehr zum sauberen Backup beiträgt.

  5. 5

    Chris 10.05.2010 um 12:55 Uhr

    Klasse Tutorial, danke für die ausführliche Anleitung. Ich nutze bisher beides – Frank Bültges Wartungsmodus und MySQLDumper schon lange, nur nicht zusammen. Durch die Anpassung ist das meiner Meinung nach jetzt eine ideale Backup-Lösung, die den kleinen extra Aufwand wert ist.

  6. 6

    Stefan 10.05.2010 um 14:55 Uhr

    @Chris:
    Herzlichen Dank für das Lob! ;-)

    Wichtig!

    In meinem Artikel hatte sich in den SQL-Befehlen der Fehlerteufel eingeschlichen! Dort wurden zwei Hochkommas falsch dargestellt und dadurch der Code nicht richtig dargestellt!

    Ich habe den Code mittlerweile geändert, dieser passt nun. Ich empfehle allen, die den Code bis zu diesem Zeitpunkt kopiert hatten, diesen nochmals zu aktualisieren, damit es nicht zu Problemen kommt!

    Danke an Frank Bültge für den Hinweis! :cool:

  7. 7

    Tanja 10.05.2010 um 17:43 Uhr

    Mein Cronjob mit Script ist vom Provider erstellt und empfohlen. Werde da sicherlich nicht Hand dran anlegen und doppelt gemoppelt brauch ich das ganze Zeug natürlich nicht. Warum in die Ferne schweifen, wenn das Gute so nah liegt und so einfach ist.
    Hab auch schon hin und wieder auf die Sicherungen zurückgegriffen, auch mit wirklich sehr großen Shop Datenbanken. Alles bestens ;-)

  8. 8

    Stefan 10.05.2010 um 18:07 Uhr

    In solch einem Fall ist es verständlich. Wenn Du schon eine passende Lösung angeboten bekommst von Deinem Provider und diese auch funktioniert, dann kannst Du Dich ja auch beruhigt zurücklehnen. :-)

    Leider hat die Erfahrung aber gezeigt, dass längst nicht alle Betreiber einer Webseite sich Gedanken über die Sicherung ihrer Daten machen. Und wenn es dann mal kracht und alles weg ist, dann sieht man ziemlich alt aus…

  9. 9

    Jeffrey 10.05.2010 um 18:21 Uhr

    Danke für die nette Anleitung, werde ich mir gleich mal noch speichern!

    Ich habe schon oft vom MySQLDumper gelesen, ihn aber noch nie benutzt.

  10. 10

    Stefan 11.05.2010 um 13:23 Uhr

    Gern geschehen! ;-)

  11. 11

    Tanja 11.05.2010 um 14:40 Uhr

    Ja, das ist richtig, viel zu wenige machen sich um solche Dinge Gedanken und wenns dann mal brennt, dann aber richtig :lol:
    Ich hatte am ersten Weihnachtsfeiertag das Problem, dass ich mir nen Trojaner gefangen habe und damit alle FTP Daten geschrottet waren. Wie gut, dass ich auch davon Sicherungen habe ;-)

  12. 12

    Alexander 16.08.2011 um 17:08 Uhr

    Hallo Stefan, erst einmal Danke für die ausführliche Anleitung. Datensicherung ist sicher ein heißes Eisen, denn gerade wer sich professionell mit Programmierung beschäftigt weiß, wie wichtig diese ist. Es ist wirklich sehr ärgerlich, wenn die Daten einfach weg sind und manchmal ist der Schaden nicht wieder gut zu machen. Der MySQLDumper ist sicher eine der besten Backup-Lösungen. Grüße Alex

  13. 13

    Stefan 16.08.2011 um 18:10 Uhr

    Ja, das stimmt. Gerade wenn die Datenbank das Zeitliche segnet, tut es richtig weh.
    Deshalb ist es umso schöner, dass es Helfer wie den MySQLDumper gibt. Dennoch sollte man immer prüfen, ob das angelegte Backup auch funktionsfähig ist.
     
    Ich hatte vor Kurzem den Fall, dass ein Backup nicht richtig angelegt wurde, weil der für PHP zugewiesene Speicher zu klein bemessen war und größere Tabellen einfach nicht vollständig gesichert wurden. Ich habe dies aber nicht mitbekommen, weil in der abschliessenden Mail nach Beenden des Backups auf den ersten Blick kein Hinweis zu sehen war, dass das Backup nicht vollständig ist. Das böse Erwachen kam dann, als ich das Backup einspielen wollte und einfach mal die Hälfte der Tabellen fehlten…
     
    Deshalb sollte man von Zeit zu Zeit mal einen genaueren Blick auf das Backup werfen und auch die Größen der Backups vergleichen und einfach mal in einer Testumgebung das Backup durchspielen. Dann bleiben einem solche Überraschungen erspart. :-)

  14. 14

    Kerstin 06.11.2011 um 23:19 Uhr

    Vielen Dank für die informativen Tips! Wenn ich all das früher gewusst hätte, hätte ich mir einigen Schaden an meinem Blogprojekt ersparen können. So wurde ich leider erst “aus dem Schaden klug”, aber wenigstens bin ich so auf diese Infos getroffen. Sehr gute Arbeit!

  15. 15

    Stefan 11.11.2011 um 21:33 Uhr

    Ja, diese Problematik ist mir nicht ganz unbekannt. :-)
    Ich habe auch schon solche Momente gehabt, in denen ich mich gefragt habe, warum ich nicht früher reagiert habe. Hauptsache, man lernt aus solchen Erfahrungen und macht nicht zweimal die gleichen Fehler. ;-)

Info

Bevor Du einen Kommentar schreibst, solltest Du wissen, dass mein Blog "nofollow-free" ist, d.h. Du bekommst hier von mir einen echten Backlink auf Deine Seite.

Dafür nehme ich mir das Recht heraus, alle Links aus Deinem Kommentar zu entfernen, die alleine der Werbung dienen oder nur Pagerank abgreifen.

 

Kommentar schreiben ...

:-) 
;-) 
:-D 
:-)) 
:-( 
:-(( 
:-x 
:-/ 
:-| 
>:-) 
:-* 
:angel: 
:cool: 
:*) 
:-p 
:-o 
:?: 
:exclaim: 
:idea: 
 

Deine E-Mail-Adresse wird nicht veröffentlicht.

 

E-Mail-Benachrichtigung bei weiteren Kommentaren.

Auch möglich: Abo ohne Kommentar.