Ihr betreibt einen MySQL-Datenbankserver unter Windows? Sichert ihr auch brav regelmäßig eure Datenbanken? Das ist nicht schwer und kann ohne zusätzliche Software realisiert werden. Ich zeige hier eine Möglichkeit zur regelmäßigen Sicherung von MySQL-Datenbanken unter Windows. Wir nutzen dazu die Bordmittel des MySQL-Servers sowie die Windows Aufgabenverwaltung.

Der MySQL-Server bringt bereits alles mit, um Datenbanken zu verwalten und auch zu sichern. So auch das Befehlszeilen-Tool mysqldump mit dem wir einen Datenbankdump, also eine Kopie der Datenbank, erstellen können.

Die Syntax um eine Datenbank mittels mysqldump zu sichern lautet

mysqldump -u'Datenbankbenutzername' -p'Datenbankbenutzerpasswort' 'Datenbankname' > sicherung.sql

Machen wir es etwas plastischer. Wollen wir mit dem Chef des Ganzen, nämlich dem User root mit dem Passwort geheim eine Datenbank mit dem Namen meineDatenbank sichern, geben wir folgendem Befehl im Programmverzeichnis (\mysql\bin) des MySQL-Servers ein:

mysqldump -uroot -pgeheim meineDatenbank > sicherung.sql

Damit wir diesen Befehl regelmäßig automatisiert ausführen können, benötigen wir eine Batch-Datei, also eine unter Windows ausführbare Datei. Öffnet den Explorer und erstellt im bin-Verzeichnis des MySQL Servers, in diesem Beispiels d:\mysql\bin, aus dem Kontextmenü Neu ein Textdokument.

Als Dateinamen vergebt ihr sicherung.bat (vergesst nicht die Dateierweiterung .txt zu entfernen, die Windows vorgegeben hat).

Danach öffnet ihr die Datei mit einem Editor und tragt folgendes ein:

@echo off
echo Sicherung Datenbank 'meineDatenbank'
FOR /F "tokens=1,2,3 delims=/: " %%a in ('Time/T') do set CTIME=%%a%%b%%c
set ZEIT=%CTIME%
set DATUM=%date%
d:\mysql\bin\mysqldump -uroot -pPasswort meineDatenbank > d:\mysql\backup\meineDatenbank_%DATUM%_%ZEIT%.sql

In diesem Beispiel ist der MySQL-Server im Verzeichnis D:\mysql installiert. Die Sicherung erfolgt als Benutzer root in das Verzeichnis D:\mysql\backup. An den Dateinamen hängen wir Datum und Uhrzeit, damit die Sicherungsdatei bei der nächsten Sicherung nicht überschrieben wird.

Eigentlich ein schlechtes Beispiel, denn Sicherungen gehören auf eine andere Festplatte oder Medium, als die Ursprungsdateien; sonst nutzt die Sicherung bei einem Festplattencrash natürlich wenig. Macht es also besser wie ich und nutzt ein Backupverzeichnis, welches nicht auf der gleichen Festplatte wie der MySQL-Server liegt. Beispielsweise euren Dropbox-Ordner.

So weit, so gut.

Nun gilt es eine Aufgabe in der Windows Aufgabenverwaltung zu erstellen. Damit können wir dann die regelmäßige Ausführung dieser Batch-Datei planen. Die Aufgabenplanung findet ihr in der Systemsteuerung unter dem Punkt Verwaltung.

Im Menü Aktion wählen wir Einfache Aufgabe erstellen….

Gebt der Aufgabe einen Namen

Wählt im zweiten Schritt Zyklus und Zeitpunkt der Sicherung; im Beispiel die wöchentliche Sicherung am Montag um 19.00 Uhr. Hier solltet ihr logischerweise einen Zeitpunkt wählen, an dem euer Rechner in der Regel an ist.

Als Aktion wählt ihr Programm starten

Im Eingabefeld Programm/Skript geben wir nun den Pfad zu der angelegten Batch-Datei an

Um sicher zugehen, dass die Sicherung auch wie gewünscht funktioniert, werden wir diese nun manuell einmal ausführen. Wechselt dazu in die Aufgabenplanungsbibliothek und sucht in der Liste die eben erstellte Aufgabe. Klickt diese mit rechts an und wählt Ausführen.

In der Spalte Ergebnis der letzten Ausführung seht ihr ob die Sicherung geklappt hat.

Da ältere Sicherungsdateien nicht automatisch gelöscht werden, solltet ihr das Sicherungsverzeichnis von Zeit zu Zeit mal manuell aufräumen und einige ältere Sicherungen löschen.

So, das war’s auch schon.