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
[code]mysqldump -u’Datenbankbenutzername‘ -p’Datenbankbenutzerpasswort‘ ‚Datenbankname‘ > sicherung.sql[/code]
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 (mysqlbin
) des MySQL-Servers ein:
[code]mysqldump -uroot -pgeheim meineDatenbank > sicherung.sql[/code]
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:mysqlbin
, 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:
[code]@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:mysqlbinmysqldump -uroot -pPasswort meineDatenbank > d:mysqlbackupmeineDatenbank_%DATUM%_%ZEIT%.sql[/code]
In diesem Beispiel ist der MySQL-Server im Verzeichnis D:mysql
installiert. Die Sicherung erfolgt als Benutzer root
in das Verzeichnis D:mysqlbackup
. 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.