MariaDB-Backups mit den Werkzeugen von MariaDB.
DBackup führt mariadb-dump, das Werkzeug, das MariaDB selbst mitbringt, nach Zeitplan aus. Es verschlüsselt die Dumps mit AES-256-GCM, wenn der Job einen Schlüssel hat, legt sie auf dem Speicher Ihrer Wahl ab und stellt sie mit dem mariadb-Client wieder her.
- VerbindenDirekt zu mariadb:3306
- Dumpmariadb-dump --single-transaction --routines --events --databases nextcloud
- VerschlüsselnGzip und AES-256-GCM
- HochladenHetzner Object Storage
- Aufbewahren7 täglich, 4 wöchentlich, 12 monatlich
- MeldenDiscord · #backups
- Getestet mit 10.11 und 11.4
- MariaDB 10 und 11
- Der MariaDB-Client ist im Image enthalten
- mariadb-dump
- Über SSH läuft mariadb-dump auf Ihrem Server
- Direkt oder über SSH (Beta)
- Datenbanken wählen und neu benennen
- Wiederherstellung in der App
So läuft ein MariaDB-Backup
Vier Schritte, jeder mit einem Werkzeug oder Format, das Sie auch selbst nutzen könnten. DBackup führt sie nach Zeitplan aus und meldet sich, wenn einer scheitert.
- 1Dump
mariadb-dump --single-transactionsichert jede Datenbank aus einem konsistenten Snapshot, standardmäßig mit ihren Routinen und Events. - 2KomprimierenDBackup kann jeden Dump mit Gzip oder Brotli komprimieren, bevor er verschlüsselt wird.
- 3VerschlüsselnAES-256-GCM mit dem Schlüssel eines Verschlüsselungsprofils, für jeden Dump einzeln. Darin bleibt der Dump, was das Werkzeug geschrieben hat.
- 4AblegenHochgeladen zu einem oder mehreren der 13 Speicherziele, jedes mit eigener Aufbewahrung, von einer einfachen Anzahl bis täglich, wöchentlich, monatlich und jährlich.
Was in den Dump kommt, pro Quelle
Das entscheiden die Options einer Quelle. Jeder Schalter ist an, solange Sie ihn nicht ausschalten, und Extra options gehen unverändert an mariadb-dump.
Das Passwort erreicht mariadb-dump in einer temporären Datei, die nur ihr Besitzer lesen kann, nie über die Kommandozeile.
- Konsistenter Snapshot
--single-transactionLiest InnoDB-Tabellen zu einem Zeitpunkt, ohne Schreibzugriffe zu blockieren. Ausgeschaltet werden die Tabellen jeder Datenbank gesperrt, solange sie gesichert wird. - Gespeicherte Prozeduren und Funktionen
--routinesSichert die Routinen jeder Datenbank mit ihren Tabellen. - Events
--eventsSichert die geplanten Events jeder Datenbank.
Vor jedem Dump prüft DBackup, was der Login lesen darf. Darf er die Events oder den Inhalt einer Routine nicht lesen, wird diese Datenbank ohne sie gesichert, mit einer Warnung im Lauf.
Ein Archiv pro Lauf, ein Dump pro Datenbank
Ein Job nimmt eine einzelne Datenbank, einige oder alle Datenbanken des Servers ohne die Systemschemas. Die Dumps teilen sich ein TAR mit Manifest und einem Verzeichnis der Prüfsummen.
- Stellen Sie eine einzelne Datenbank wieder her, ohne die anderen anzufassen, und geben Sie ihr einen neuen Namen, etwa als Kopie neben der laufenden.
- Ein MariaDB-Backup lässt sich nur in MariaDB wiederherstellen und nie von einem neueren auf einen älteren Server. Die App prüft beides, bevor sie beginnt.
- Unverschlüsselt holt
tar -xfdie SQL-Dateien heraus, undgunzipoderbrotli -dentpackt sie, wenn der Job komprimiert.
- TARwiki-mariadb_2026-10-08_03-00-00.tar164 MB
- { }manifest.json
- DIRdatabases/
- DBnextcloud.sql.gz121 MB
- DBwiki.sql.gz43 MB
- { }index
$ node dbackup-recover.js --extract wiki-mariadb_2026-10-08_03-00-00.tar ./restored databases/nextcloud$ mariadb -u root -p < ./restored/databases/nextcloud.sql
Zurückholen ohne DBackup
Das Recovery Kit entschlüsselt und entpackt einen Dump und prüft ihn, bevor es die Datei schreibt. Den Rest erledigt der mariadb-Client.
Das Recovery Kit aus dem Vault besteht aus einem Skript und Ihrem Schlüssel. Es entschlüsselt und entpackt einen Dump und prüft seine SHA-256-Summe, bevor es die Datei schreibt.
Warum wir das so gebaut habenIn fünf Minuten startklar
DBackup ist ein Container. Stellen Sie ihn neben Ihre Datenbank, geben Sie ihm einen Login und legen Sie den ersten Job an.
services:
dbackup:
image: skyfay/dbackup:latest
restart: always
ports:
- "3000:3000"
environment:
- ENCRYPTION_KEY=${ENCRYPTION_KEY} # openssl rand -hex 32
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} # openssl rand -base64 32
- BETTER_AUTH_URL=https://localhost:3000
volumes:
- ./data:/data
mariadb:
image: mariadb:11
environment:
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
Fragen zu MariaDB
MariaDB 10 und 11. Die Integrationstests laufen gegen 10.11 und 11.4.
Nicht aus der App, die Wiederherstellungen zwischen MariaDB und MySQL ablehnt, ebenso von einem neueren auf einen älteren Server. Die SQL-Datei können Sie trotzdem von Hand einspielen.
Ja. Der mariadb-Client liest den Dump ohne --force, also beendet die erste fehlerhafte Anweisung die Wiederherstellung, und der Lauf zeigt den Fehler.
Ja, über SSH, das noch in der Beta ist. DBackup meldet sich am Server an, führt dort mariadb-dump aus und überträgt den Dump zurück. Der Server braucht mariadb-dump, mariadb und mariadb-admin oder deren mysql-Namen.
Ja. Das Recovery Kit holt die SQL-Datei heraus, verschlüsselt oder nicht, und entpackt sie, mit nichts als Node.js. Der mariadb-Client spielt sie zurück.
Weitere Datenbanken
Alle IntegrationenIhr erstes MariaDB-Backup läuft heute Nacht.
Ein Container, eine Compose-Datei und ein Job. Kostenlos und Open Source.