Synology NAS – MariaDB Datenbank Sicherung

Über den Synology Dienst HyperBackup lässt sich zwar die gesamte MariaDB (ehemals MySQL) Datenbank sichern und wiederherstellen, jedoch bietet er keine Möglichkeit, einzelne Datenbanken zu sichern. Ein weiterer Nachteil ist, dass HyperBackup den Datenbankdienst während des Sicherungsprozesses anhält, was bedeutet, dass die Datenbanken in dieser Zeit nicht erreichbar sind.

Es gibt zwar PHP-Tools wie MySQL Dumper, mit denen man einzelne Datenbanken sichern kann, aber warum sollte man extra eine Webseite einrichten und zusätzlich Skripte oder Tasks verwenden, wenn die Sicherung auch direkt mit Bordmitteln von Synology funktioniert?

Hier eine einfache Methode, um ein Datenbank-Backup ohne zusätzliche Tools durchzuführen:

Schritt-für-Schritt-Anleitung:

1) Erstelle in DSM eine neue Aufgabe. Der Benutzer, der für die Sicherung zuständig ist, muss weder root noch ein Administrator sein. Es reicht, wenn dieser Benutzer Schreibrechte für den Zielordner hat.

2) Bestimme, zu welchem Zeitpunkt die Aufgabe ausgeführt werden soll, z. B. täglich, wöchentlich sowie die gewünschte Uhrzeit.

3) Füge das Skript ein, das die Datenbank sichert. In diesem Beispiel wird das Backup für 7 Tage im freigegebenen Ordner „Backup“ im Unterordner „MySQL“ gespeichert. Die MariaDB10-Version wird genutzt. Das MySQL Root-Passwort im Script ist an die eigenen Gegebenheiten anzupassen. Wenn du mehr oder weniger als 7 Tage für die Aufbewahrung der Backups möchtest, kannst du die Anzahl der Tage ebenfalls im Skript anpassen.

#!/bin/bash
HOLD_DAYS=7 
TIMESTAMP=$(date +"%F")
BACKUP_DIR="/volume1/Backup/MySQL"
MYSQL_USR="root"
MYSQL_PWD="TopSecret007!"
MYSQL_CMD=/var/packages/MariaDB10/target/usr/local/mariadb10/bin/mysql
MYSQL_DMP=/var/packages/MariaDB10/target/usr/local/mariadb10/bin/mysqldump

mkdir -p "$BACKUP_DIR/$TIMESTAMP"
databases=`$MYSQL_CMD --user=$MYSQL_USR -p$MYSQL_PWD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`

for db in $databases; do
$MYSQL_DMP --force --opt --user=$MYSQL_USR -p$MYSQL_PWD --databases "$db" | gzip > "$BACKUP_DIR/$TIMESTAMP/$db.gz"
done

find $BACKUP_DIR -maxdepth 1 -mindepth 1 -type d -mtime $HOLD_DAYS -exec rm -rf {} \;

Eine Antwort zu “Synology NAS – MariaDB Datenbank Sicherung”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert