Backup Database

Änderungsstand: 2020-10-12

Um meine Openmediavault-Nextclouddatenbank, die aufgrund der Größe von mehreren MB (ca. 70MB) zu groß für den PHPMyAdmin-Import war, trotzdem wiederherzustellen, verwendete ich folgenden Befehl, nachdem ich eine leere Datenbank des identischen Namen anlegte:

cat 2020-06-14-02+30+12-nextclouddocker.sql | docker exec -i mariadb /usr/bin/mysql -u root --password=123456978 nextclouddocker

Die Backupdatei muss im Verzeichnis liegen, von welchem der Befehl ausgeführt wird.

Backup Datenbank(en) in Unraid:

Dazu benötigt man die App „db-backup“. Diese herunterladen und installieren.

  • Backup Location: (Backup-Verzeichnis)
  • Key 2: mariadb (oder die Datenbank, die Ihr verwendet)
  • Key 3: Database Hostname (Server-IP)
  • Key 4: Database User (root)
  • Key 5: Database Password (root-Passwort)
  • Key 6: 3306 (oder den Port, den Ihr verwendet)
  • Key 7: 1440 (wäre täglich, Angabe in Minuten)
  • Key 12: Seperate DB Backups: TRUE (FALSE übernimmt alle Datenbanken in einer Datei)

Wenn fertig, Apply. Nicht vergessen, den Docker-Autostart zu setzen. DB-Backup wird nun automatisch, einmal am Tag, die Backups der Datenbanken vollziehen. Möchte man die Einstellungen Testen, einfach die db-backup-Console öffnen und folgenden Befehl eingeben:

backup-now

Das Restore, wenn es benötigt wird, läuft nach dem Schema, wie oben beschrieben. Hier noch einmal kurz die Beschreibung.

cat BACKUPFILE.sql | docker exec -i mariadb /usr/bin/mysql -u root --password=PASSWORT DATENBANKNAME

Wichtig, dass das Restore nur funktioniert, wenn eine Datenbank des Namens, welche wiederhergesllt werden soll, vorher angelegt sein muss. Dank meiner Beschreibung, wie man eine Datenbank mittels PHPMyAdmin erstellt, sollte das kein Problem sein.

Um die Datenbanken komplett in einer Datei, ohne das Plugin, zu sichern (sicher ist sicher), verwende ich folgenden Befehl:

.

sudo docker exec mariadb /usr/bin/mysqldump -u root --password=12345698 --all-databases > /mnt/user/backups/db-all/`date +%Y-%m-%d-%H+%M+%S`-alldatabases.sql

Jedes Backup wird nun mit einer Datum- und Zeitangabe vor den Namen abgelegt (z.B. 2020-06-22-01+22+49-alldatabases.sql).

Das Restore würde dann so aussehen:

cat /BACKUPPFAD/2020-10-12-05+30+01-alldatabases.sql | docker exec -i mariadb /usr/bin/mysql -u root --password=PASSWORT

Hierbei werden alle Datenbankeinträge inkl. Benutzernamenzuweisungen wiederhergestellt. Der Vorteil ist, dass es keine Dateigrößenbeschränkung gibt. Ist die Backupdatei mehrere MB oder GB groß, spielt das überhaupt keine Rolle. Der Restore dauert halt nur länger, je größer die Datei ist.

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten