DBackup
Datenbank-Integration

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.

Open Source unter GPL-3.0 · läuft auf Ihrem eigenen Server
wiki-mariadbLäuft
  1. VerbindenDirekt zu mariadb:3306
  2. Dumpmariadb-dump --single-transaction --routines --events --databases nextcloud
  3. VerschlüsselnGzip und AES-256-GCM
  4. HochladenHetzner Object Storage
  5. Aufbewahren7 täglich, 4 wöchentlich, 12 monatlich
  6. MeldenDiscord · #backups
Mit einem Verschlüsselungsprofil wird jeder Dump mit AES-256-GCM verschlüsselt, bevor er Ihren Server verlässt.
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.

  1. 1Dumpmariadb-dump --single-transaction sichert jede Datenbank aus einem konsistenten Snapshot, standardmäßig mit ihren Routinen und Events.
  2. 2KomprimierenDBackup kann jeden Dump mit Gzip oder Brotli komprimieren, bevor er verschlüsselt wird.
  3. 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.
  4. 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 -xf die SQL-Dateien heraus, und gunzip oder brotli -d entpackt 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
Der Aufbau eines unverschlüsselten Archivs. In einem verschlüsselten tragen die Einträge neutrale Namen.
Jeder Rechner mit Node.js
$ 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 haben

In 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.

docker-compose.yml
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.

Ihr erstes MariaDB-Backup läuft heute Nacht.

Ein Container, eine Compose-Datei und ein Job. Kostenlos und Open Source.