Für den sicheren Betrieb jeder Datenbank sind Backups un­er­läss­lich. Ein Ausfall, ein feh­ler­haf­tes Update oder ein Si­cher­heits­vor­fall kann Daten un­wie­der­bring­lich löschen. In diesem Tutorial erfahren Sie, wie Sie MariaDB-Da­ten­ban­ken wirksam schützen und ein voll­stän­di­ges MariaDB-Backup durch­füh­ren.

MariaDB-Backup-Typen: logisch vs. physisch

MariaDB un­ter­schei­det zwischen zwei Arten von Backups:

  • Logische Backups speichern Daten in einem SQL-aus­führ­ba­ren Format. Sie enthalten An­wei­sun­gen wie CREATE TABLE und INSERT INTO, mit denen sich Struktur und Inhalte der Datenbank wie­der­her­stel­len lassen. Logische Backups eignen sich, wenn Sie Daten auf andere Systeme, andere Versionen oder sogar auf andere Da­ten­bank­sys­te­me über­tra­gen möchten.
  • Physische Backups kopieren Dateien und Ver­zeich­nis­se der Datenbank direkt vom Da­tei­sys­tem. Diese Methode arbeitet schneller und ef­fi­zi­en­ter, besonders bei großen Da­ten­men­gen. Al­ler­dings funk­tio­niert sie nur zu­ver­läs­sig, wenn Server, Spei­cher­for­ma­te und MariaDB-Versionen identisch bleiben.

Für viele Szenarien empfiehlt sich eine Kom­bi­na­ti­on aus beiden Methoden – zum Beispiel logische Dumps für einzelne Daten oder Tabellen und physische Si­che­run­gen für voll­stän­di­ge und schnelle Wie­der­her­stel­lun­gen.

Managed Database Services
Da­ten­ban­ken – Auf´s We­sent­li­che kon­zen­trie­ren
  • IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
  • Flexibel: Maß­ge­schnei­der­te Datenbank-Lösungen ganz auf Ihre Be­dürf­nis­se
  • Re­chen­zen­tren in Deutsch­land: Ihre Daten sind sicher

MariaDB-Backup erstellen: Welche Optionen gibt es?

MariaDB stellt ver­schie­de­ne Werkzeuge zur Verfügung, um Daten zu sichern. Je nach Ein­satz­zweck, Da­ten­men­ge und Sys­tem­um­ge­bung kommen un­ter­schied­li­che Methoden in Frage.

mariadb-dump

mariadb-dump ist das be­kann­tes­te Backup-Tool von MariaDB. Es erstellt logische Si­che­run­gen und speichert Daten als SQL-Datei. Diese Datei lässt sich später mit dem MariaDB-Client wieder ein­spie­len.

Vorteile:

  • Läuft auf jedem System mit MariaDB-Client
  • Sichert Tabellen, einzelne oder alle Da­ten­ban­ken
  • Kom­pa­ti­bel mit anderen MariaDB- und MySQL-Versionen

Nachteile:

  • Große Da­ten­men­gen ver­län­gern die Si­che­rungs- und Wie­der­her­stel­lungs­zeit
  • Während des Backups kann es zu Last­spit­zen kommen

mariadb-backup

mariadb-backup sichert Daten physisch. Das Werkzeug basiert auf Percona Xtra­Back­up und wurde für MariaDB erweitert. Es un­ter­stützt Ver­schlüs­se­lung und Kom­pres­si­on.

Vorteile:

  • Schnell und effizient bei großen Da­ten­men­gen
  • Führt Backups im laufenden Betrieb durch (Hot Backup)
  • Geeignet für pro­duk­ti­ve Systeme mit InnoDB-Tabellen

Nachteile:

  • Funk­tio­niert nur mit InnoDB (nicht mit MyISAM)
  • Höherer Aufwand bei Ein­rich­tung und Wie­der­her­stel­lung

Weitere Optionen

  • mariadb-hotcopy: Älteres Werkzeug für MyISAM-Tabellen (wird nicht mehr gepflegt)
  • LVM-Snapshots: Sys­tem­wei­te Sicherung auf Da­tei­sys­tem-Ebene. Sehr schnell, aber komplex
  • dbForge Studio: Grafische Lösung für Windows-Systeme mit bequemer Ober­flä­che

Pra­xis­bei­spiel: MariaDB-Backup durch­füh­ren mit mariadb-dump

Sie benötigen Zugriff auf den Da­ten­bank­ser­ver und ein Be­nut­zer­kon­to mit Backup-Rechten (zum Beispiel root). Öffnen Sie ein Terminal oder eine SSH-Ver­bin­dung. Stellen Sie sicher, dass der Befehl mariadb-dump in­stal­liert und im Pfad verfügbar ist.

Alle Da­ten­ban­ken sichern

Führen Sie den folgenden Befehl aus:

mariadb-dump -u root -p --all-databases --result-file=/backups/backup_all.sql
bash

Erklärung:

  • -u root: Legt den Benutzer root fest.
  • -p: Fordert zur Eingabe des Passworts auf.
  • --all-databases: Sichert alle vor­han­de­nen Da­ten­ban­ken.
  • --result-file: Legt die Zieldatei für das Backup fest.

Das Backup enthält alle Da­ten­ban­ken inklusive Be­nut­zer­ver­wal­tung, Trigger, Views und Sys­tem­ta­bel­len.

Eine bestimmte Datenbank sichern

Der folgende Befehl --databases shop_db sichert nur die an­ge­ge­be­ne Datenbank.

mariadb-dump -u root -p --databases shop_db --result-file=/backups/shop_db.sql
bash

Wenn Sie die CREATE DATABASE-Anweisung im Dump vermeiden möchten, verwenden Sie:

mariadb-dump -u root -p shop_db --result-file=/backups/shop_db.sql
bash

In diesem Fall müssen Sie die Datenbank bei der Wie­der­her­stel­lung selbst anlegen.

Mehrere Da­ten­ban­ken sichern

Nach­fol­gend listen Sie die Da­ten­ban­ken auf, die in die Sicherung auf­ge­nom­men werden. Sie erzeugen eine SQL-Datei mit An­wei­sun­gen für alle auf­ge­führ­ten Da­ten­ban­ken.

mariadb-dump -u root -p --databases db1 db2 db3 --result-file=/backups/multiple.sql
bash

Einzelne Tabellen sichern

Wir geben die Datenbank und die ge­wünsch­ten Tabellen direkt im Befehl an. Dies ist nützlich für gezielte Exporte, zum Beispiel bei Migration einzelner Tabellen.

mariadb-dump -u root -p db_name table1 table2 --result-file=tables.sql
bash

Mögliche Optionen für mariadb-dump

Option Be­schrei­bung
--no-data Sichert nur die Struktur, keine Daten
--no-create-info Sichert nur die Daten, ohne Ta­bel­len­struk­tur
--routines Sichert Pro­ze­du­ren und Funk­tio­nen
--events Sichert geplante Er­eig­nis­se
--single-transaction Sicherung ohne Sperren bei InnoDB-Tabellen
--quick Reduziert Spei­cher­be­darf bei großen Tabellen

MariaDB: Backup au­to­ma­ti­sie­ren mit Cron

Au­to­ma­ti­sie­ren Sie tägliche Backups mit einem Cronjob. Öffnen Sie die Cron-Tabelle:

crontab -e
bash

Fügen Sie diese Zeile ein, um bei­spiels­wei­se täglich um 3 Uhr ein Backup zu erstellen:

0 3  ***  mariadb-dump -u root -p password --all-databases --result-file=/backups/backup-$(date +\%F).sql
bash

Speichern Sie Pass­wör­ter aus Si­cher­heits­grün­den nicht direkt in der Cron-Tabelle. Legen Sie statt­des­sen eine Kon­fi­gu­ra­ti­ons­da­tei .my.cnf im Home-Ver­zeich­nis an:

[client]
user=root
password=password
bash

Setzen Sie die Zu­griffs­rech­te:

chmod 600 ~/.my.cnf
bash

Verwenden Sie dann in Cronjobs folgende Variante ohne Passwort:

mariadb-dump --all-databases --result-file=/backups/backup-$(date +\%F).sql
bash

Nutzen Sie mariadb-dump vor­zugs­wei­se für flexible, sys­tem­un­ab­hän­gi­ge Backups und kleinere Da­ten­men­gen. Für pro­duk­ti­ve Systeme mit großen Da­ten­be­stän­den empfiehlt sich mariadb-backup. Sichern Sie re­gel­mä­ßig und prüfen Sie Ihre Backups durch Test-Wie­der­her­stel­lun­gen. Nur ein geprüftes Backup schützt Sie zu­ver­läs­sig vor Da­ten­ver­lust.

Zum Hauptmenü