Seit ein paar Tagen nutze ich RESTIC experimentell für Sicherungen
von Dateisystemen. Jetzt würde ich gerne zusätzlich ein paar
Mysql-Datenbanken sichern.
Grundkonzept
Ich nutze Mysql-Datenbanken für diverse Applikationen, beispielsweise:
Nextcloud
Zammad
Roundcube
etc
Die Datenbanken möchte ich gerne sichern in RESTIC. Erstmal manuell, später gerne automatisiert.
Manuelles Sichern am Beispiel Nextcloud
Für die Sicherungen brauche ich:
Eine Möglichkeit, das Tool “mysqldump” gegen die Nextcloud-Datenbank auszuführen
Eine Möglichkeit, auf mein RESTIC-Sicherungsverzeichnis zuzugreifen via Skript
Nextcloud-Server
Konfigurationsdatei “mysqldump.conf”
1
2
3
[mysqldump]
user=mysql-admin
password=9a7d8a90f4f377acd9a7c2f5ceb9e86d176
Manueller Aufruf von “mysqldump”
1
2
3
4
5
6
7
8
9
10
11
root@nextcloud:~# mysqldump --defaults-file=/etc/mysqldump.conf --all-databases --extended-insert=FALSE|head -10
-- MySQL dump 10.32 Distrib 10.5.12-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database:
-- ------------------------------------------------------
-- Server version 10.5.12-MariaDB-0ubuntu0.22.04.1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
RESTIC-Server
Kennwort-Datei “restic-password.conf”
Testsicherung
Hier ein Testlauf der Sicherung einer Kommandoausgabe:
1
2
3
4
5
6
7
8
9
10
11
12
$ DP_USER=uli
$ DP_DRIVE=uli-0195
$ echo "uli-war-da" | restic backup --repo "/media/${DP_USER}/${DP_DRIVE}/restic-${DP_USER}" --stdin --stdin-filename nextcloud.sql --password-file /etc/restic-password.conf
repository 8e8d2ec7 opened successfully, password is correct
using parent snapshot 2aeea51a
Files: 0 new, 1 changed, 0 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Added to the repo: 322 B
processed 1 files, 11 B in 0:01
snapshot 2d079697 saved
Sicherung wieder löschen:
1
2
3
$ restic forget --repo "/media/${DP_USER}/${DP_DRIVE}/restic-${DP_USER}" 2d079697
repository 8e8d2ec7 opened successfully, password is correct
[0:00] 100.00% 1 / 1 files deleted
Manuelle Sicherung
Erste Sicherung:
1
2
3
4
5
6
7
8
9
10
11
12
13
my-desktop:~$ DP_USER=uli
my-desktop:~$ DP_DRIVE=uli-0195
my-desktop:~$ ssh nextcloud-server mysqldump --defaults-file=/etc/mysqldump.conf --all-databases --extended-insert=FALSE \
> |ssh restic-server restic backup --repo "/media/${DP_USER}/${DP_DRIVE}/restic-${DP_USER}" --stdin --stdin-filename nextcloud.sql --password-file /etc/restic-password.conf
repository 8e8d2ec7 opened successfully, password is correct
using parent snapshot ed2b23d2
Files: 1 new, 0 changed, 0 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Added to the repo: 190.901 MiB
processed 1 files, 190.895 MiB in 0:07
snapshot 733c9cee saved
Folgesicherung:
1
2
3
4
5
6
7
8
9
10
11
12
13
my-desktop:~$ DP_USER=uli
my-desktop:~$ DP_DRIVE=uli-0195
my-desktop:~$ ssh nextcloud-server mysqldump --defaults-file=/etc/mysqldump.conf --all-databases --extended-insert=FALSE \
> |ssh restic-server restic backup --repo "/media/${DP_USER}/${DP_DRIVE}/restic-${DP_USER}" --stdin --stdin-filename nextcloud.sql --password-file /etc/restic-password.conf
repository 8e8d2ec7 opened successfully, password is correct
using parent snapshot 2aeea51a
Files: 0 new, 1 changed, 0 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Added to the repo: 31.920 MiB
processed 1 files, 190.895 MiB in 0:02
snapshot 9910f899 saved
Links
Änderungen
2021-11-17 – DP_HOSTNAME weg
2021-11-13 – Erste Version