MariaDB und MySQL Sicherung per .bat Datei

Um eine Sicherung per Windows Scheduler zu erstellen, benötigen Sie eine .bat Datei die vom Betriebssystem automatisiert ausgeführt wird.

Beispiel einer .bat Datei:

--- schnipp ---

@echo off
set cdate=
for /f "tokens=1,2,3 delims=. " %%i in ('date /t') do set cdate=%%k%%j%%i
echo %cdate% - Backup der XT-Datenbank wird durchgefuehrt. Bitte warten ...

@echo on

@mysqldump --host=localhost --port=3306 --user=system --password=systempassword --databases xt > C:\Beispielpfad\xt_sicherung_%date%.sql

@echo off
rem Backupordner öffnen
%SystemRoot%\explorer.exe /e, C:\Beispielpfad\xt_sicherung_%date%.sql

pause

--- schnapp ---

Beschreibung zur .bat Datei

Um die .bat Datei zu erstellen, nutzen Sie einen einfachen Editor, der normalerweise .txt Dateien speichert. Um später eine .bat Datei zu öffnen, klicken Sie mit der rechten Maustaste auf die .bat Datei und wählen "Bearbeiten". Ein doppelklick würde die .bat Datei ausführen.

@echo off:

Dieser Befehl steuert die Anzeige der Befehle in der Konsole. Echo off bedeutet, dass alle Befehle bis zum nächsten @echo on in der Ausgabe nicht angezeigt werden sollen. Das bedeutet nicht, dass die Ergebnisse nicht angezeigt werden. Es geht tatsächlich um die Befehle. In unserem Beispiel "set cdate=for /f "tokens=1,2,3 delims=. " %%i in ('date /t') do set cdate=%%k%%j%%i". Dieser Teil ist der Befehl und wird nicht angezeigt. Lediglich das Ergebnis, das Datum erscheint.

Ausgabe Batch Datei

set cdate:

Damit der Befehl "mysqldump" unter Windows funktioniert müssen Sie die Umgebungvariable entsprechend setzen. Sie können die Einstellung in der Systemsteuerung von Windows vornehmen. Dort finden Sie den Punkt "Systemumgebungsvariablen bearbeiten".

Legen Sie den Path auf das bin-Verzeichnis Ihres MySQL/MariaDB Servers. Zum Beispiel: D:\laragon\bin\mysql\mysql-5.7.24-winx64\bin

In diesem Ordner muss die Datei mysqldump.exe liegen.

@mysqldump:

In unserem Beispiel ist dies das Kernstück des Befehls. Die Sicherung einer MariaDB oder MySQL Datenbank.

--host: Die Adresse auf der Ihre Datenbank liegt. Das kann "localhost" oder eine IP-Adresse sein "192.168.xxx.xxx".

--port: Ist im Standard 3306 und muss nur explizit angegeben werden, wenn Sie einen anderen Port verwenden.

-- user & --password: wird benötigt um sich mit dem DB Server zu verbinden. Der jeweilige Benutzer benötigt das Recht eine Sicherung zu erzeugen.

--databases  Dieser Befehl bitte ohne "=". Hier geben Sie die Datenbank an, die gesichert werden sollen. Im Beispiel soll xt nach ">" C:\Tbeispielpfad\xt_sicherung_%date%.sql gespeichert werden. Mehrere Datenbanken können nicht so einfach in einzelne Dateien gesichert werden. Dazu wird es einen neuen News-Eintrag geben.

ACHTUNG: Das Synology arbeitet Case sensitive. Heißt, achten Sie auf Groß- und Kleinschreibung bei der Nennung der Datenbank.

rem:

In unserem Beispiel: rem Backup-Ordner öffnen

Dies ist lediglich ein Kommentar (rem = remarks). Dieser Kommentar erscheint nicht in der Ausgabe und ist lediglich zur Information innerhalb der Batchdatei gedacht.

%SystemRoot%explorer.exe /e, C:\Tbeispielpfad:

Dieser Befehl öffnet den Pfad im Windows-Explorer in dem die Sicherung gespeichert wurde. Das /e steht als Befehl für den Windows-Explorer: Zeige mir den kompletten Pfad der Unterverzeichnisse bis C:\Tbeispielpfad. Ohne das /e würde nur die Oberste Ebene (Dieser PC) im Explorer geöffnet, aber nicht der Zielpfad.

pause:

Dieser Befehl ist optional und pausiert die Abarbeitung der Batch Datei. Es erscheint die Aufforderung "Drücken Sie eine beliebige Taste... " Mit diesem Befehl können Sie Ihre Ausgaben der Batchdatei prüfen, da sie ansonsten ohne Dialogfenster abgearbeitet würde. Wenn Sie also eine automatisierte Sicherung erstellen, sollten Sie nach der Funktionsprüfung der Datei diesen Befehl entnehmen, so dass sich kein Dialogfenster öffnet.

Einrichten der Umgebungsvariable in Windows

Um den Befehl @sqldump auf einem Windows System auszuführen, müssen Sie im Windows System eine Umgebungsvariable zur mysqldump.exe setzen. Haben Sie noch kein MariaDB oder MySQL auf Ihrem Windows System installiert, sollten Sie sich über die Website (https://mariadb.org/download/) die Installationsdateien als .zip herunterladen und nur den Ordner "bin" in einen auf Ihrem Windows System angelegten Ordner extrahieren (z.B. Dokumente/MySQL Tools/bin). Stellen Sie sicher, dass Sie die Dateien für die gleiche Version die Sie auch am auf Ihrem Server am Laufen haben herunterladen.

Suchen Sie über das Windowsmenü die Option "Systemumgebungsvariablen bearbeiten". Klicken Sie im Dialog "Systemeigenschaften" auf den Reiter "Erweitert" und wählen die Umgebungsvariablen.

Fügen Sie im "Path" eine neue Variable hinzu die auf Ihre mysqldump.exe im bin Verzeichnis (wie oben beschrieben angelegt) liegt.

Umgebungsvariable setzen.

Aufgabe im Windows Scheduler (Aufgabenplanung) anlegen

Öffnen Sie die Aufgabenplanung über Ihr Windowsmenü.

Klicken Sie auf "Aktion" -> Einfache Aufgabe erstellen. Sie werden durch das Erstellen der Aufgabe geführt und können damit automatisiert die Batch-Datei ausführen.

Aufgabenplanung in Windows

Datensicherung zurückspielen

Wenn die Datensicherung ebenso über eine Batch-Datei zurückgespielt werden soll, dann wird zusätzlich neben der mysqldump.exe auch die mysql.exe Anwendung benötigt. Hier ein Beispiel für das Zurückspielen einer Datensicherung:

mysql.exe --protocol=tcp --host=127.0.0.1 --user=root --port=3306 --default-character-set=utf8 --comments --database=xt  < "\\Sicherungspfad\\MySQL\\backup_mysql_xt_20180308.sql"

Auch hier wieder an die Groß- und Kleinschreibung denken! Der Host, der User, die Datenbank (database) sowie der Pfad auf dem die Sicherung liegt müssen entsprechend angepasst werden.

Zurück

Kommentare

Einen Kommentar schreiben

Bitte rechnen Sie 3 plus 2.