Cartoons, Comics, Illustrationen, Doodles und Auftragsarbeiten

Backup und Restore einer WordPress-Datenbank

WordPress Backup und RestoreIn diesem sehr ausführlichen und mit viel Bildmaterial versehenem Tutorial zeige ich euch Schritt für Schritt, wie ihr mit phpMyAdmin eine Datensicherung und eine Wiederherstellung der Sicherung durchführt. Die Zielgruppe dieses Tutorials sind überwiegend Einsteiger im Bereich WordPress, phpMyAdmin und MySQL.

Vorneweg:

Eine regelmäßig durchgeführte Datensicherung eurer WordPress-Datenbank gehört zu den immer wiederkehrenden Aufgaben eines jeden Blogbetreibers und sollte deswegen einfach sitzen.


Es gibt zahlreiche Möglichkeiten ein Backup der WordPress Datenbank durchzuführen:

  • manuell mit einem Hilfstool wie phpMyAdmin, mysqlDumper oder dergleichen
  • automatisiert mit Hilfe eines Cron-Jobs, der regelmäßig ein Backup-Skript ausführt
  • mit Hilfe eines WordPress-Plugins
  • der Provider bietet eventuell ein Sicherungssystem an

Dieses Tutorial behandelt aber ausschließlich die Vorgehensweise mit phpMyAdmin.

Eine komplette Datensicherung besteht aus zwei Hauptteilen:

  1. Dem Backup bzw. die Datensicherung
  2. Dem Restore bzw. die Datenwiederherstellung

Backup mit phpMyAdmin

(vor zu Restore)


Der Grund, warum ich gerade diese Form der Datensicherung zeige, ist der, dass ich in meinen folgenden Postings, Hand an den Tabellen anlegen werde. Bevor man aber Änderungen an den Daten vornimmt, sollte grundsätzlich ein Backup angelegt werden. Ein kleiner Schreibfehler kann schon ausreichen um WordPress zu versenken. Wenn etwas schief laufen sollte, kann so ohne Panik ein Restore durchgeführt kann, also die gesicherten Daten wieder eingespielt werden. Ihr solltet euch auch direkt angewöhnen, vor der Installation eines Plugins ein Backup zu fahren, sei es manuell oder aus WordPress heraus mit Hilfe eines Plugins (aber vor der Installation eines Backup-Plugins müsstet ihr natürlich erst eine manuelle Sicherung durchführen ;))

Als Ergänzung findet ihr aber im Anhang einige Links mit Erklärungen, wie auf andere Art und Weise Datensicherungen durchgeführt werden können. Somit solltet ihr rundum versorgt sein 😉

Aufrufen von phpMyAdmin

Je nach Provider und gewählter Bedienungsoberfläche, wie z.B. CPane, oder KAS von all-inkl.com und wie sie sonst noch alle heißen, wird der Menüpunkt um phpMyAdmin aufzurufen woanders liegen. Da müsst ihr euch einfach die diesbezüglichen Anleitungen der Provider anschauen und im gleichen Schritt die Anmeldedaten für phpMyAdmin raus suchen.

Ich gehe jetzt davon aus, dass ihr alles geschafft habt und pypMyAdmin gestartet und einsatzbereit ist und ihr nur noch die richtige Datenbank auswählen müsst.

Auswahl der Datenbank:

WordPress Backup und Restore

WordPress Backup und Restore by smollisworld

1. phpmyadmin-auswahl-wpdatenbank

Je nach Anzahl der angelegten Datenbanken habt ihr in der linken Leiste eure Datenbanknamen stehen. Meistens wird dann nicht einfach nur WordPress da stehen, sondern ein Prefix, bestehend aus Zahlen und Buchstaben, wie z.B. 552xtfab_wordpress oder sogar ohne wordpress. WordPress 3.0x ohne Plugins besteht aus 11 Tabellen. Falls ihr euch also nicht sicher sein solltet, schaut zuerst in die Datenbanken mit einer (11) am Ende des Namens.

Klickt jetzt erst einmal auf den Datenbanknamen, wo ihr WordPress vermutet, damit die ganzen Tabellen angezeigt werden.

    Tabellen von WordPress:

    WordPress Backup und Restore

    WordPress Backup und Restore by smollisworld

    2. phpmyadmin-export-wpdatenbank


    Wenn ihr richtig gelegen habt mit der Datenbank, dann dürften jetzt in der linken Leiste alle 11 Tabellen angezeigt werden. Eine WordPress-Tabelle besteht aus einem Prefix, hier wp_, und dem eigentlichen Tabellennamen.

    Es ist immer ratsam einen anderen als den Standard-Prefix zu nehmen. Wir wollen es ja den Hackern nicht zu leicht machen. Diesen Prefix könnt ihr übrigens in der wp_config.php ändern. Nehmt ruhig mehr als 2 Zeichen und mischt Zahlen und Buchstaben, wie ein kleines Passwort halt. Aber das nur am Rande.

    In dem oberen Reiter steht was von Exportieren, klickt nun darauf und ihr gelangt zu den Exporteinstellungen.

      Exporteinstellungen:

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      3. phpmyadmin-exporteinstellungen


      Jetzt wird die Sache langsam spannender. Wenn ihr die gesamten Tabellen sichern wollt, dann wählt alles auswählen aus, ansonsten wählt nur die Tabellen, die abgesichert werden sollen. Die restlichen Einstellungen sind meistens bereits korrekt eingestellt. Führt sicherheitshalber noch einen Abgleich mit den gelb markierten Feldern des Screenshots durch.

      Unter Senden besteht noch die Möglichkeit zwischen unkomprimiert oder Zip bzw. GZip komprimiert auszuwählen. Bleibt ihr unter der Linux-Umgebung eures Providers dann empfehle ich GZip, ansonsten geht auch Zip. Wie ich später zeigen werde, kann das aber auch zu Problemen führen. Spaßeshalber habe ich für dieses Tutorial Zip ausgesucht 😉

      Wenn ihr fertig seid, drück OK. Dann rödelt phpMyAdmin etwas herum und bietet auch dann an, die Datei runterzuladen. Tut das.

      Sobald die Datei auf eurem Rechner liegt, gönnt euch die Freude und entpackt die Datei und öffnet sie mit einem Texteditor eurer Wahl. Ich bevorzuge notepad++ und PSPad,

      Eine Standard-WordPress-Datenbank sieht dann am Ende so aus:

      Ansicht der Sicherungs-Datei im Editor:

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      4. phpmyadmin-ansicht-exportsql


      Wie ihr seht, ist das alles keine Hexerei. Eure Datensicherung besteht aus einer ganzen Menge von ganz normalen SQL-Anweisungen. Ihr könntet jetzt sogar hingehen und alles auswählen und per copy&paste alles in das SQL-Eingabefeld von phpMyAdmin eingeben. Alles kein Problem. Ihr solltet nur vorher die Tabellen löschen. Wenn die Datenmenge zu groß wird, geht das natürlich nicht mehr.

      Bis hierhin  ging es nur um das Thema Sicherung der WordPress-Datenbank. Was jetzt zwingend folgen muss, ist die Wiederherstellung der zuvor abgesicherten Daten. Weiter geht’s.

      Daten-Wiederherstellung / Restore

      (zurück zu Backup)


      Die Sicherung der Daten ist, wie es sicherlich schon befürchtet habt, nur die halbe Miete 😉 Was hilft es, das neueste Backup zu haben, wenn ihr die Daten nicht zurück spielen könnt? Eben! gar nichts! Also machen uns jetzt daran unseren abgespeicherten Datenbestand wieder einzuspielen. Aber stop! Bevor wir dies tun können, müssen wir erst einmal Platz schaffen. Richtig gehört. Einerseits würde uns mySQL als ordentliches Datenbanksystem gar nicht erlauben unsere Daten über vorhandene zu spielen, es wäre auch unsinnig. Wir wollen ja keinen Datenkauderwelsch.

      Also besteht unser nächster Schritt darin alle Tabellen zu löschen. Nur die Tabellen samt Inhalt, nicht aber die Datenbank!!

      WordPress-Tabellen löschen

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      5. phpmyadmin-wptabellen-loeschen


      Löschen geht wie so oft ganz einfach. Klickt auf den Befehl Alle auswählen direkt unterhalb der Tabellen auf der rechten Seite (gelbe Markierung), dann wählt aus dem Pulldown-Menü die Option Löschen und zu guter Letzt bestätigt ihr mit OK.

      Falls ihr eure Meinung geändert haben solltet, so könnt ihr jetzt noch widerrufen.

      Löschen bestätigen

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      6. phpmyadmin-loeschen-bestaetigung


      Sehr mutig, ihr habt also tatsächlich alle eure WordPress-Tabellen gelöscht. Cool 😉

      Um sicher zu sein, dass auch keine Fehler vorgefallen sind, gibt euch phpMyAdmin nun eine Rückmeldung. Es gibt keine Fehlermeldung, die WordPress-Datenbank zeigt erwartungsgemäß 0 Tabellen in der linken Leiste. Perfekt.

      Löschen-Rückmeldung

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      7. phpmyadmin-loeschen-feedback


      Jetzt, wo wir sauberen Boden haben, können wir endlich unsere Sicherungs-Datei zurück spielen.

      Dazu klickt ihr auf den Reiter Importieren.

      Importieren eines Backups die 1.

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      8. phpmyadmin-leere-wpdatenbank-import


      Im darauf folgendem Screen klickt ihr einfach auf Durchsuchen und wählt die vorher abgelegte Backup-Datei, die mit .zip am Ende.

      Datei-Auswahl und Start der Wiederherstellung

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      9. phpmyadmin-import-wpdaten-zip


      Jetzt kommt es: Falls ihr jetzt eine Fehlermeldung wie die folgende erhaltet, dann fehlt bei euch das Modul mit dem Zip-Dateien dekomprimiert werden können. Im Normalfall dürfte dies aber kein Problem sein. Ich benutze lokal die WAMP-Installation Mowes Portable und da fehlt das wohl. Überhaupt nicht so tragisch 😉

      Fehlermeldung wegen Zip

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      10. phpmyadmin-importfehler-zip

      Wenn ihr aber online arbeiten solltet, dann dürfte diese Fehlermeldung nicht auftreten. Eine häufiger anzutreffende Fehlermeldung ist die, dass der Import gescheitert ist, weil die zu importierende Datei zu groß ist. Die Fehlermeldung stammt dann von PHP und sofern ihr keinen Zugriff auf die php.ini habt oder euer Provider nicht bereit ist einige Werte zu ändern, steht ihr relativ verloren da.  Mehr als komprimieren und optimieren der Daten geht auch nicht. In so einem Fall müsst ihr ein anderes Tool wie z.B. mysqlDumper oder HeidiSQL nutzen, doch das übersteigt dieses Einsteigertutorial. Bei Interesse könnte ich mich aber auch dran setzen, wenn auch nicht sofort.


      Für die von der o.g Fehlermeldung betroffenen oder für diejenigen, die neugierig sind, stelle ich eine Lösung für das Zip-Problem vor. Kann ja nicht schaden.

      Neukomprimierung des Backups im GZip-Format

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      11. 7zip-rekomprimierung-als-gzip

      Wenn also das normale Zip nicht gehen sollte, dann wird es höchstwahrscheinlich das GZip-Format tun, weil das auf so gut wie jedem Linux-Server einfach drauf ist.


      Um unter Windows eine Zip-Datei umzuwandeln, sind nur wenige Schritte nötig.

      1. Installieren des super genialen und kostenlosen 7-zip
      2. Entpacken der gezipten backup-Datei, so dass ihr die nackte Sql-Datei erhaltet
      3. Sql-Datei auswählen, rechte Maustaste, aus dem Menü 7-Zip die Funktion zu Archiv hinzufügen.
      4. Die Einstellungen wie im obigen Screenshot vornehmen, also das GZip-Format auswählen und OK.

      Jetzt versucht den Import mal mit dieser Datei.

      Import des GZip-Backups die 2.

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      12. phpmyadmin-import-wpdaten-gzip


      Sofern keine Speicherproblematik aufgetreten ist, müsstet ihr nun die Meldung erhalten haben, dass der Import erfolgreich ausgeführt worden ist.

      Erfolgreicher Import des Backups

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      13. phpmyadmin-import-ok


      Jetzt sind wir eigentlich schon fertig mit der Wiederherstellung der Daten. Als letztes bleibt noch zu erwähnen, dass ihr vielleicht noch einen Blick auf eure Tabellen und den angegebenen Informationen wie Anzahl der Einträge und die Größe der Tabellen werfen (jeweils gelb markierte Zeilen im unteren Screenshot) und diese mit den Ursprungsdaten vergleichen solltet.

      Sofern ihr an den Daten keine Veränderungen vorgenommen habt, sollten die Werte identisch sein.

      Abgleich der Daten

      WordPress Backup und Restore

      WordPress Backup und Restore by smollisworld

      14. phpmyadmin-importierte-wpdatenbank-vergleich

      Wenn dies nicht der Fall sein sollte, dann überlegt erst einmal, ob ihr nicht doch aus versehen im Editor etwas verändert habt? Das kann ja durchaus gewollt sein, wie ich in einem späteren Tutorial zeigen werde. Im Zweifelsfall geht nochmal einige Schritte zurück, löscht erneut die Daten und führt wieder einen Reimport aus. Vielleicht hatte der Server gerade einen Schluckauf 😉

      Fazit

      Ich hoffe, dass das Tutorial einigen hilfreich gewesen sein konnte. Es ist relativ ausführlich ausgefallen, ausführlicher als ich es zu Anfang gedacht hatte, nichts desto Trotz hoffe ich, dass es nicht zu langatmig oder zu verwirrend war. Meiner Meinung nach, gehört das Wissen über das Erstellen einer Sicherung und auch der erfolgreichen Wiederherstellung mit den Standard-Methoden zum kleinen Überlebens-Einmaleins eines jeden Bloggers.

      Fall ihr Fragen, Anregungen, Ergänzungen oder sonst eine Bemerkung zu diesem Tutorial haben solltet, dann immer raus damit. Ich werde versuchen zeitnah zu antworten.

      Empfehlenswerte Links zu dem Thema Backup:

      • Für alle Kunden von all-inkl.com ist das Tutorial von Tanja in ihrem neu eröffneten Blog officetrend.de (umgezogen von crazytoast.de) wertvoll, in dem sie sehr schön ausführt, wie man eine automatische Sicherung mit Hilfe eines Skriptes und eines Cron-Jobs durchführen kann.
      • Cashy von dem bekannten Blog stadt-bremerhaven.de stellt zwei Backup-Plugins vor.
      • Generell etwas zum Thema Backups mit WordPress mit zahlreichen Tipps sind bei Elmastudio.de zu finden.
      • Frank Bültge, allen WordPresslern sicherlich ein Begriff, hat ein Plugin geschrieben, mit dem aus dem WordPress-Backend heraus direkt auf die Datenbank zugegriffen werden kann, so ähnlich wie bei phpMyAdmin, nur in einer Lite-Version. Kann sehr nützlich sein. Unter bueltge.de zum downloaden.

      Als letzten Tipp gebe ich euch mit, auf einer lokalen Kopie eurer Webseite einige Backup-Plugins zu installieren und vor allem in den WordPress-Foren bezüglich dieser Plugins genau nach zu forschen, wo eventuelle Probleme sind, wie häufig das Plugin aktualisiert wird, also gepflegt wird und ob es überhaupt mit eurer WordPress-Version kompatibel ist.


      Ich wünsche euch ein frohes Schaffen!

      Philipp

      19 Kommentare

      1. Sehr lesenswerter Beitrag, sehr zu empfehlen. Ich selber mache ein Backup per Plugin.

      2. Ich danke dir. Das ist mein erster Beitrag in dieser Länge, 1814 Wörter :)
        Welches Plugin benutzt du denn? Ich habe das Glück bei meinem Provider aus der Oberfläche heraus auf Knopfdruck ein Backup, sowohl der Verzeichnisse, wie auch der Datenbanken anfertigen zu können. Nachteil, ich muss da immer rein. Ich konnte mich aber noch für kein Plugin entscheiden.

      3. Nicht nur sehr lesenswert, sondern auch gut und flüssig zu lesen. .

      4. Danke, Lob tut gut :) Hat trotz der vielen Arbeit Spaß gemacht. Das war jetzt nur die Basis für weitere Beiträge, die auf das Backup&Restore Tutorial aufbauen werden.

      5. Pingback: Feed Abo Day Januar 2010 | Crazy Girls Tipps

      6. Auch ein dickes Lob von mir, das hast Du wirklich klasse gemacht! Ich hab das aber ehrlich gesagt noch nie über phpmyadmin gemacht (wie auch sonst nichts damit).
        Da ich mehrere Datenbankbanken habe arbeite ich mittlerweile mit dem MySQLDumper und einem Perl-Cronjob.

        Und noch ein kleiner SEO-Tipp: Wenn Du im Beitrag Deine Tags verlinkst, dann reicht ein Link pro Tag vollkommen aus. Viel bringt nicht gleich viel in diesem Bereich.

      7. Hallo Philipp, ich nutze folgendes: http://austinmatzko.com/wordpress-plugins/wp-db-backup/ kann auch automatisiert werden, sprich (Beispiel) einmal die Woche per email oder in ein Verzeichnis aufm Server.

      8. @Tanja Danke für dein Lob. Du kannst dir gar nicht vorstellen, wie gut das tut. Arbeit war echt, das Einbinden der Screenshots von Flickr aus, trotz Plugin. Vielleicht ziehe ich W3Filter bald nach all-inkl um, damit ich die ganzen Grafiken lokal halten kann und auch einen richtigen Namen vergeben kann.

        Danke auch für deinen SEO-Tipp, das Plugin SimpleTags macht das automatisch. Ist dann wohl besser diese Option auszuschalten und manuell zu verlinken.

        @Michael Danke für die Info, ich werds mal auf einem frischem Nebenblog (noch nicht für SuMas aktiviert!) installieren und schauen wie gut es klappt.

      9. Ist eine tolle Anleitung. Da hast du dir wirklich viel Mühe gegeben. Aber die Realität ist wohl leider doch so das die Mehrheit andere Programm nutzt um zu sicher. Bis ich bei „phpMyAdmin“ eingeloggt bin ist die Sicherung mit „MySQLDumper“ schon fast fertig. Und ist auch wesentlich leichter. Aber trotzdem….weiter so!!!

      10. Danke! Ja, du hast sicher recht, dass, wenn man einmal gut dabei ist mit seinem Blog, nur noch selten etwas mit phpMyAdmin macht.

        Aber jede Lamp, Wamp und jeder Provider hat als Standard phpMyAdmin drauf. Und das ist das Tool, das anfänglich jeder benutzt.

        Ich selbst brauche phpMyAdmin noch recht häufig, vor allem auf meiner lokalen Testumgebung, oder wenn ich direkt per SQL-Statements Hand an der Datenbank anlege.

        Aber klar, im Dauerbetrieb sollte man zwingend seine Backups automatisieren. Hast du ja jetzt auch so gelöst. Was waren eigentlich deine Probleme mit Updraft? Ich konnte diesbezüglich auf deiner Webseite nichts finden.
        (Übrigens eine sehr schöne Website, leicht und locker, mag ich!)

      11. Ich habe keine Ahnung was Updraft für ein Problem hatte. Ich werde es glaube ich auch nie erfahren. Es wollte nicht wie ich wollte und deswegen wollte ich es nicht 😉

        MySQLDumper ist auf jeden Fall besser!

        Automatisiert habe ich es noch nicht. Ich werde es manuell machen erst mal. Ich habe sowas gerne selbst in der Hand. Ich habe es als Lesezeichen abgelegt. So sind es zwei Klicks zum sichern.

      12. Ah, und danke für das Kompliment. Finde ich toll wenn anderen meine Seite gefällt. Ich bin aber auch ständig am dran arbeiten!

      13. Ich habe keine Ahnung was Updraft für ein Problem hatte. Ich werde es glaube ich auch nie erfahren. Es wollte nicht wie ich wollte und deswegen wollte ich es nicht

        lol, gesunde Einstellung 😉 MySQLDumper ist auf jeden Fall ein bewährtes Tool.

        Stimmt schon, eigene Webseiten sind eine ständige Baustelle. Deinen Tipp aus w3filter-erstrahlt-jetzt-im-neuen-wordpress-glanz werde ich beherzigen.

      14. Ich hab mal gehört, dass sich das Plugin entsprechend konfigurieren lässt 😉 Da ich es aber noch nie live gesehen habe, kann ich dazu nix genaueres sagen…

      15. Genau, habe ich zu meinem Glück auch gesehen, sonst hätte ich noch in der single.php rumdoktern müssen und dazu habe ich momentan so überhaupt keine Lust, nach meinem Dauergefriemel mit Drupal. Easy going 😉

      16. Gerade heute entdeckt – ein großartiger Artikel, der mir sehr geholfen hat. Vielen Dank!

        Liebe Grüße
        Tina

      17. Aber immer gerne. Ich bin ja froh, wenn meine Tutorials behilflich sind.

        PS: Hast du auch an Absicherung gedacht? Siehe meinen letzten Beitrag zum Thema Brute-Force-Attacken und dem netten Limit-Login-Attacks-Plugin.

      18. Prima Anleitung!
        Könnte ich die Backupdateien in eine völlig andere, neu angelegte MSQL-Datenbank exportieren, um z.B bei einem Serverwechsel mein WP mit dem gleichen Datenbestand von der neuen Datenbank, also auf dem neuen Server, weiter zu bearbeiten?

      19. Danke für die Blumen!
        Ja klar, wenn du dir die erzeugte Backup-Datei mal anschaust, wirst du nur ganz normale SQL-Befehle sehen. Da brauchst du also nur per Suchen & Ersetzen die notwendigen Änderungen durchführen und mit PhpMyAdmin in die neue Datenbank importieren.
        Dann noch schnell die WordPress-Config anpassen und auf gehts.

      \\n