Grundlegendes
Die Datenbank ist wohl die wichtigste und empfindlichste Datei auf einem Server System, wie bei einem Content-Management-System wie WordPress. Darum ist es absolut wichtig, die Mysql Datenbank immer zu sichern.
In der folgenden Anleitung möchte ich, beschreiben, wie man einen Mysqldump von einer WordPress Datenbank erstellt. Das Kommandozeilentool ist standardmäßig bei MySQL dabei. Generell wird beim Erstellen der Sicherungen immer die aktuelle gelesen Tabelle für Schreibvorgänge gesperrt.
Das ist deshalb wichtig, damit keine Inkonsistenzen entstehen. Jedoch könnte es vorkommen, dass während der Sicherungen Anwendungen, die in diese Tabelle schreiben müssen, nicht oder nur fehlerhaft funktionieren.
Einen MySqldump der Mysql Datenbank erstellen
#!/bin/bash
mysqldump -u root -ptest dbwp > /backup/`date +\%Y-\%m-\%d-\%H+\%M+\%S`-sqlbackup.sql
Für die Befehle erstellt man am besten ein BASH Script. In meinem Beispiel wurde das Script in das Home Verzeichnis des Roots gespeichert und die Backupdatei wird in das Verzeichnis Backup direkt im Wurzelverzeichnis gespeichert.
Die Weiterleitung übernimmt dabei der „Größer“ Operator „>“. Weiterhin ist es natürlich noch sinnvoll, für die Backupdatei einen ordentlichen Namen zu vergeben.
Im obigen Script setzt er sich zusammen aus dem Datum und der Uhrzeit. Somit kann man sehr einfach bestimmen, wann die Sicherung angefertigt wurde.

Automatische tägliche Sicherung
Eine Sicherung sollte immer kontinuierlich erfolgen. Unter einem Linux System eignet sich dafür ein cronjob. Die Konfiguration erfolgt dabei in der /etc/crontab Datei. Die ersten nötigen Parameter sind dabei die Zeit, wann es ausgeführt werden soll.
Im Folgenden wurde dabei die Zeit auf 3:30 Uhr festgelegt sowie eine tägliche Ausführung. Die tägliche Ausführung ist dabei durch den Stern „*“ ersichtlich.
Anschließend benötigt der Cronjob noch den Benutzer, unter welchem das Script ausgeführt werden soll, sowie auch den Pfad zum Script.

Löschen älterer Sicherungen
Würde man jetzt nicht älter Sicherungen löschen, so wäre die Festplatte* wohl relativ schnell voll. Darum macht es, im letzten Schritt Sinn ältere Sicherungen zu löschen.
Im obigen Script wurde dies dadurch berücksichtigt, dass man zunächst mit dem find Befehl alle Daten, welcher älter als 30 Tage sind, auflistet und diese anschließen löscht.
#!/bin/bash
mysqldump -u root -ptest dbwp > /backup/`date +\%Y-\%m-\%d-\%H+\%M+\%S`-sqlbackup.sql
find /backup/* -mmin +7 -exec rm {} \;

Fazit
Gerade die Mysql Datenbank ist das „Herzstück“ jeder dynamischen Webseite. Umso wichtiger ist es, diese gut zu pflegen und auch regelmäßig zu sichern. Sollten mal ein Fehler auftauchen, so hat man eine Sicherung, auf welches man zurückgreifen kann.
Als Ausblick sollte man sich auch überlegen, dass man die Datenbankdatei nicht unbedingt auf dem Webserver bläst, sondern Remote auf einen anderen Server, NAS-Speicher etc. sichert. Hierfür würde sich z. B. Secure Copy (scp) anbieten.











