Vor einigen Tagen hatte ich einen Schockstarre-Moment… Es kam eine Mail an, in der Goneo (Hoster) mich darüber informierte, dass aufgrund meiner Datenbankgröße mein Account (und damit mein Blog!!!) gesperrt werde. Sofort. Der Blasse Schimmer war einfach offline. Zack.
Im ersten Moment dachte ich „Das ist aber eine schlechte Fishing Mail… wieso sollte denn mein Account gesperrt werden…“ bis ich sah, dass ich mit Namen und Kundennummer angeschrieben worden war.
Da dachte ich… „Wenn ich das mal vorher gewusst hätte… “ und daher schreibe ich jetzt einmal für Euch zusammen, was ich gerne vorher gewusst hätte und was Euch vielleicht eine Hilfe sein kann.
0) Datenbankgröße herausfinden
In Eurem Kundenbereich (Hoster abhängig) unter Webserver(1)/Übersicht MySQL Datenbanken(2) finden sich Eure Datenbanken (die charmanten Zahlenkombinationen). In der Spalte MB ist die Größe zu entnehmen: und in meinem Fall war sie 560MB! (normal sind einige MB… aber 500 ist deutlich zu viel!).
Um aktiv werden zu können, wenn man sich gerade nicht in WordPress einloggen kann (weil der Account beispielsweise gesperrt wurde) muss man sich über phpMyAdmin(3) mit dem passenden Benutzernamen (s. Übersicht) und Passwort (mit [A] freischalten und einfügen) anmelden und alle Änderungen dort manuell vollziehen… (dazu weiter unten)
***Alle Bilder lassen sich mit einem Klick vergrößern und besser lesen!***
Nach einem Anruf bei Goneo waren sie dort so freundlich, mir den Account bereits ohne die vorherige Reduktion der Datenbank (ich war mit der Arbeit an im phpMyAdmin Bereich etwas überfordert) erst einmal freizuschalten mit der Zusicherung, dass ich mich darum bemühen würde. Das habe ich auch.
[dropshadowbox align=“center“ effect=“raised“ width=“550px“ height=““ background_color=“#ffffff“ border_width=“1″ border_color=“#dddddd“ ]Jeder Artikel wird durch seine Revisionen, Entwürfe und Veränderungen x-mal zwischengespeichert und auch Kommentare und Spam landen in unserer Datenbank. So wächst sie im Stillen einfach und wird größer… und größer… und… größer.
• Viele Hoster geben nur begrenzten Platz für die Datenbank – mehr kostet mehr.
• Die Ladezeiten des Blogs erhöhen sich deutlich durch eine unnötig große und komplexe Datenbank
• Die Größe von regelmäßigen Backups kann enorm groß werden und enorme Zeit benötigen, weil die Datenbank sie aufbläht.[/dropshadowbox]
Zuerst habe ich im phpMyAdmin – Bereich versucht einen Überblick zu bekommen (Vorsicht- ich bin absoluter Laie und es kann sein, dass einige Angaben hier einfach ungenau oder (im schlimmsten Fall) falsch sind – korrigiert mich dann bitte). Über „Datenbank“(4) kommt Ihr zu Fenster (5), wo sich zwei Möglichkeiten auftun: A) Klickt auf den Namen der Datenbank, das führt Euch zu Bildausschnitt (7) oder (B)auf die Datenbankstatistik, das führt zu Bildausschnitt (6). Bei Datenbankstatistik (6) seht ihr die Größe der Datenbank ebenfalls. Bei (7) seht ihr, wie groß die einzelnen Tabellen sind und welche am meisten Platz einnimmt.
Ganz oben im Menü findet Ihr den Punkt „Exportieren“(8) – das ist an diesem Punkt eine extrem gute Idee und sollte ohnehin regelmäßig stattfinden. Backups der Datenbank sind wichtig. Euer Content (Images, etc.) sind übrigens NICHT Bestandteil der Datenbank. Die sind in der Regel mit Eurem gesamten Content unter /htdocs/wp-content Eures Webservers abgespeichert.
1) Sichern Eures Blogs
Nach dem Überblick habe ich erstmal auf jede mir erdenkliche Art den Blog gesichert. Zum Backup gehören 2 Teile: Daten auf dem Webserver und die Datenbank. Fehlt eines der beiden ist das Backup nicht vollständig! (Hier oder hier sind sehr gute Artikel dazu, letzterer mitsamt Anleitung zum Wiederherstellen!).
[dropshadowbox align=“center“ effect=“raised“ width=“550px“ height=““ background_color=“#ffffff“ border_width=“1″ border_color=“#dddddd“ ]Die Datenbank enthält alle wichtigen Informationen des Blogs wie Artikel, Seiten, Benutzerinformationen, Kommentare, Einstellungen, aber auch Spam etc.
Die Dateien auf dem Webserver stellen das Grundgerüst, die Installation dar. [/dropshadowbox]
Es ist NICHT ausreichend bei WordPress einfach die Werkzeuge>Daten exportieren Funktion zu wählen. Wenn die Installation kaputt ist, etwas zerschossen oder gelöscht oder Ihr wollt mit Eurem Blog 1:1 umziehen… dann braucht Ihr die folgende Sicherung:
A) Backup der Daten auf dem Webserver (WordPress Installation, Content, etc.)
1) Ich habe das Plugin WPB2D bereits seit längerer Zeit und finde das nächtliche, regelmäßige Backup auf meine Dropbox sehr hilfreich. Andere sind BackUpWordPress (sichert Datenbank & Dateien), BackWPUp (sichert Datenbank & Dateien + Exportfunktion zu Coud Anbietern/Dropbox) und XCloner (Sichert die Webseite und hat eine Funktion zur Migration auf fremden Server)
2) Über Filezilla (FTP-Client) habe ich einfach die gesamten Ordner manuell auf meine Festplatte gezogen.
B) Backup der Datenbank
Vor dem Backup der Datenbank heißt es am besten zunächst unverfänglich die Spamkommentare oder Statistikdaten in WordPress selbst zu löschen, da sie nur unnötig Raum einnehmen und problemlos gelöscht werden können.
1) Über phpMyAdmin (Bei Goneo ist es diese URL- das unterscheidet sich je nach Hoster) einloggen, über das Menü oben Exportieren wählen, die Datenbank auswählen und auf Export drücken. (s. Bild 2 oben, Ausschnitt (8).
2) Durch das Plugin WP-DB-BACKUP sichern (geht nur, wenn Ihr Zugang zu WordPress habt und Euer Account nicht gesperrt ist). Es kann sein, dass Ihr dafür Euren wp-content Ordner „beschreibbar“ machen müsst. Dazu gibt es hier eine wirklich simple Anleitung (solang ihr einen FTP-Client habt). Bei mir wirft WP-DB-BACKUP allerdings eine deutlich zu kleine Datei aus und der Inhalt scheint kaputt zu sein (mit TextEditor kann man die SQL Dateien öffnen und ansehen. Ich habe es wieder deinstalliert.
3) Über MySQLDumper
2) Datenbank bereinigen
2.1) Manuell (Zuvor Backup!!!)
(Zusammenfassung aus folgenden Artikeln „How to clean up your wordpress Database„, „WordPress Datenbank bereinigen„, „Optimize WordPress Database“ und „WordPress Datenbank bereinigen“)
2.1.1) wp_posts: Alle Revisionen von Artikeln löschen
Unter phpMyAdmin>“Name Datenbank“>WP_Posts Größe betrachten – ist sie mehrere MB groß, kann folgender Befehl (Query) Unter dem Menüpunkt „SQL“ getätigt werden
DELETE FROM wp_posts WHERE post_type = "revision" ; |
2.1.2) wp_posts Tabelle optimieren
Unter phpMyAdmin>“Name Datenbank“>WP_Posts unter dem Menüpunkt „SQL“ folgenden Befehl tätigen:
OPTIMIZE TABLE wp_posts; |
Die Tabelle wird dabei neu sortiert nach den Änderungen – das ähnelt dem Defragmentieren einer Festplatte. Alles wird etwas „kompakter“ und sinnhafter zusammengeschoben, geteilte oder gelöschte Datensätze verbunden und repariert.
2.1.3) Plugin Müll in wp_postmeta
Hier verweise ich auf den Artikel von WPLove. Er beschreibt wie man Ressourcenfresser erkennt, dass man sie deinstallieren sollte und wie man den Datenmüll deinstallierter Plugins löscht. Oder hier, wo es auch SQL Befehle gibt.
Da ich in meiner wp_postmeta Tabelle auf den ersten Seiten lauter Blogger Einträge finde (ursprünglich dort gebloggt), weiß ich nicht recht, ob ich das einfach löschen kann und halte mich da lieber zurück mit „Ratschlägen“.
Löscht man Zeilen, sind sie zwar verschwunden, bleiben aber als „Überhang“ erhalten… den kann man in der Tat sehr simpel löschen, indem man diese in der Tabellenauflistung markiert und
2.2) Plugins zur Reinigung der Datenbank
Es gibt auch Plugins für diese angstbesetzte Arbeit an den Tabellen der Datenbank. Das heißt aber nicht, dass es ungefährlicher wäre… Jede Arbeit an der Datenbank ist auch eine Gefährdung für Euren Blog. Also… Sichern, sichern, sichern, bevor Ihr Irgndwas macht! (s. Punkt 1 „Sichern Eures Blogs“ oben!)
WP Optimize wird besonders unten diesem Artikel als Alternative beschrieben.
WP CleanFix wird hier als Video in Nutzung und Nützlichkeit gezeigt. Hier findet sich ebenfalls Artikel.
Optimize DB mit einem Artikel von einem großartigen und sehr hilfreichen Blog hier.
Da bei mir besonderes die wp_options groß war, habe ich noch folgendes Plugins gefunden: Options Optimizer
Z) Datenbank reparieren
Unter folgender URL (setzt dabei Eure Domäne ein) http://www.meine-domäne.de/wp-admin/maint/repair.php erhaltet Ihr eine Art WordPress Reparatur-Modus. Hier ist eine gute, englische Anleitung mit Bildmaterial. Dies kann die Datenbank entweder reparieren oder sie auch noch zusätzlich optimieren.
Wenn Ihr das Gefühl habt, WordPress ist völlig hinüber, habt Ihr 5 Möglichkeiten:
1) Alle Plugins deaktivieren
und staunen… meistens funktioniert dann wieder alles. Holt dann langsam einzeln die Plugins dazu und versucht den vorigen „Fehler“ wieder hervorzurufen. Dann wisst Ihr, ob es eine Unverträglichkeit war und müsst „nur“ schlimmstenfalls ein anderes Plugin suchen oder ganz darauf verzichten.
Trick, falls Ihr nicht auf die WordPress-Oberfläche kommt: über einen FTP-Client (z.B. Filezilla einfach den Plugins Ordner umbenennen – dann findet WordPress die Plugins nicht mehr. Erstelle einen leeren Ordner an richtiger Stelle mit richtigem Namen (/htdocs/wp-content/plugins) und kopiert die Pluginsordner nacheinander wieder rein und überprüft dazwischen.
2) Überprüft die wp_config Datei,
… um sicher zu gehen, dass Benutzername, Passwort und Datenbank korrekt angegeben sind.
3) Installiert WordPress noch einmal „drüber“
a) Über Dashboard>Aktualisierungen
b) Download WordPress, lösche alle Folder auf Deinem Webserver (bis auf wp_content) und kopiere das jungfräuliche WordPress über FTP-Client über die bestehende Installation ABER stell sicher, dass der Ordner wp_content NICHT überschrieben wird. Er enthält Dein Thema, die Mediathek und alle Plugins!
Gängige WordPressProbleme werden auch hier gezeigt und gelöst.
4) Datenbank reparieren
In phpMyAdmin alle Datenbanktabellen anklicken und auf „Reparieren“ im Kontextmenü unten drücken. Danach optimieren (s.oben).
5) Googeln, googeln, googeln…
Und… innerhalb des Jahres soll es eine – vielleicht interessante – Entwicklung im Blog-Bereich geben. Vielleicht lohnt sich ab Mitte/Ende des Jahres ein Blick auf Ghost, einem neuen Blogsystem von John O’Nolan, der ehemals auch an WordPress mitgewirkt hat! Hier ein kurzer dt. Artikel dazu.
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Fazit
Meine Datenbank hat sich von fast 600MB auf 29MB reduziert und alles läuft gut. Ich habe mich vorher noch NIE mit Datenbanken beschäftigt und nehme an, dass ich nur sehr, sehr rudimentär erfasst habe, worum es geht. Aber eigentlich möchte ich fast genau damit denen von Euch Mut machen, denen es ähnlich, wenn nicht sogar noch befremdlicher geht wie mir in diesem Bereich, sich damit dennoch auseinander zu setzen und nicht zu schnell zu resignieren, wenn Fehlermeldungen, Accountsperrungen oder ähnliches auftreten.
Egal ob durch Plugins oder manuell: sichert Eure Daten UND Datenbank und bekommt einen Eindruck davon, was hinter WordPress passiert, ohne dass Ihr es ahnt, damit Ihr nicht auch plötzlich die Mail erhaltet „Ihr Account wurde gesperrt“…
Ich bitte um Korrekturen und weiterführende Artikel/Videos! Und ich danke denjenigen, die versucht haben, mir bei der Lösung zu helfen! Learning by doing!
Wenn Ihr in Eile seid und mir trotzdem zeigen möchtet, ob Euch der Artikel gefallen hat, dann lasst mir doch einfach Sternchen da! Bei Gedanken, Verbesserungsvorschlägen oder Hinweisen freue ich mich über ein Kommentar, um sie zu berücksichtigen!
[rate]
HolicDeern
Danke für den informativen Post!
Habe mich noch nie mit Datenbanken auseinandergesetzt, aber als Blogger hat man ja die MBs doch rasch vollgestopft…
Werde mir den Post hier speichern 😉 quasi mein Notfallplan, wenn es bei mir (hoffentlich nicht!) ähnlich kommen sollte…
Mrs. Mohntag
Danke für die ausführliche Anleitung, ich kenne mich damit ja überhaupt nicht aus und würde auch erstmal fassungslos dastehen. Wenn ich etwas Zeit habe werde ich mal überprüfen wie groß meine Datenbanken momentan ist und dann evtl. tätig werden.
Mrs. Mohntag
Ok, jetzt hatte ich Angst und habe doch schon nachgesehen, meine Datenbank ist ganze 106 MB groß – auch nicht gerade wenig 🙁 Laut meinem Anbieter ist die Größe zwar nicht beschränkt und insgesamt noch mehr als genug Speicherplatz vorrätig, aber erfreulich ist doch was anderes. Werde mich dann am Wochenende wohl mal ans optimieren machen.
Denise
Leider kenne ich mich mit Datenbanken nicht aus. Aber ich bin froh, dass eine Lösung für das Problem gefunden wurde. Vielen Dank für die Mühe und Arbeit für den Artikel. Ich werde den Artikel speichern und weiterleiten, wenn jemand ähnliche Probleme schildern wird.
Martin Mertens
Gelungen geschrieben. Selbst vom Fach – ist der Artikel was für die Lesezeichen.
lg
martin
She-Lynx
Hallo Martin! Danke Dir für die Blumen – zumal ich mir alles zusammenklauben musste und wenig Hilfe diesbezüglich habe. Keine eigentlich bis auf die Weiten des Netztes und hoffe, dem/der ien oder anderen aus der Mühe eine gut lesbare Zusammenfassung für Prävention und Notfälle geben zu können. – Hab dank, dass Du mir so einen freundlichen Zuspruch hinterlässt! Liebe Grüße!