# MariaDB-Backup: So sichern Sie Ihre Daten

Für den sicheren Betrieb jeder Datenbank sind Backups unerlässlich. Ein Ausfall, ein fehlerhaftes Update oder ein Sicherheitsvorfall kann Daten unwiederbringlich löschen. In diesem Tutorial erfahren Sie, wie Sie MariaDB-Datenbanken wirksam schützen und ein vollständiges MariaDB-Backup durchführen.

## MariaDB-Backup-Typen: logisch vs. physisch

[MariaDB](https://www.ionos.de/digitalguide/server/knowhow/was-ist-mariadb/) unterscheidet zwischen zwei Arten von [Backups](https://www.ionos.de/digitalguide/server/sicherheit/was-ist-ein-backup/):

- **Logische Backups** speichern Daten in einem SQL-ausführbaren Format. Sie enthalten Anweisungen wie `CREATE TABLE` und `INSERT INTO`, mit denen sich Struktur und Inhalte der Datenbank wiederherstellen lassen. Logische Backups eignen sich, wenn Sie Daten auf andere Systeme, andere Versionen oder sogar auf andere Datenbanksysteme übertragen möchten.
- **Physische Backups** kopieren Dateien und Verzeichnisse der Datenbank direkt vom Dateisystem. Diese Methode arbeitet schneller und effizienter, besonders bei großen Datenmengen. Allerdings funktioniert sie nur zuverlässig, wenn Server, Speicherformate und MariaDB-Versionen identisch bleiben.

Für viele Szenarien empfiehlt sich eine Kombination aus beiden Methoden – zum Beispiel logische Dumps für einzelne Daten oder Tabellen und physische Sicherungen für vollständige und schnelle Wiederherstellungen.

## MariaDB-Backup erstellen: Welche Optionen gibt es?

MariaDB stellt verschiedene Werkzeuge zur Verfügung, um Daten zu sichern. Je nach Einsatzzweck, Datenmenge und Systemumgebung kommen unterschiedliche Methoden in Frage.

### mariadb-dump

`mariadb-dump` ist das bekannteste Backup-Tool von MariaDB. Es erstellt logische Sicherungen und speichert Daten als **SQL-Datei**. Diese Datei lässt sich später mit dem MariaDB-Client wieder einspielen.

**Vorteile:**

- Läuft auf jedem System mit MariaDB-Client
- Sichert Tabellen, einzelne oder alle Datenbanken
- Kompatibel mit anderen MariaDB- und MySQL-Versionen

**Nachteile:**

- Große Datenmengen verlängern die Sicherungs- und Wiederherstellungszeit
- Während des Backups kann es zu Lastspitzen kommen

### mariadb-backup

`mariadb-backup` sichert Daten physisch. Das Werkzeug basiert auf **Percona XtraBackup** und wurde für MariaDB erweitert. Es unterstützt Verschlüsselung und Kompression.

**Vorteile:**

- Schnell und effizient bei großen Datenmengen
- Führt Backups im laufenden Betrieb durch (Hot Backup)
- Geeignet für produktive Systeme mit [InnoDB](https://www.ionos.de/digitalguide/hosting/hosting-technik/was-ist-innodb/)-Tabellen

**Nachteile:**

- Funktioniert nur mit InnoDB (nicht mit MyISAM)
- Höherer Aufwand bei Einrichtung und Wiederherstellung

### Weitere Optionen

- **mariadb-hotcopy:** Älteres Werkzeug für MyISAM-Tabellen (wird nicht mehr gepflegt)
- **LVM-Snapshots:** Systemweite Sicherung auf Dateisystem-Ebene. Sehr schnell, aber komplex
- **dbForge Studio:** Grafische Lösung für Windows-Systeme mit bequemer Oberfläche

## Praxisbeispiel: MariaDB-Backup durchführen mit mariadb-dump

Sie benötigen Zugriff auf den Datenbankserver und ein Benutzerkonto mit Backup-Rechten (zum Beispiel root). Öffnen Sie ein Terminal oder eine SSH-Verbindung. Stellen Sie sicher, dass der Befehl `mariadb-dump` installiert und im Pfad verfügbar ist.

### Alle Datenbanken sichern

Führen Sie den folgenden Befehl aus:

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

**Erklärung:**

- `-u root`: Legt den Benutzer root fest.
- `-p`: Fordert zur Eingabe des Passworts auf.
- `--all-databases`: Sichert alle vorhandenen Datenbanken.
- `--result-file`: Legt die Zieldatei für das Backup fest.

Das Backup enthält alle Datenbanken inklusive Benutzerverwaltung, Trigger, Views und Systemtabellen.

### Eine bestimmte Datenbank sichern

Der folgende Befehl `--databases shop_db` sichert nur die angegebene Datenbank.

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

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

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

In diesem Fall müssen Sie die Datenbank bei der Wiederherstellung selbst anlegen.

### Mehrere Datenbanken sichern

Nachfolgend listen Sie die Datenbanken auf, die in die Sicherung aufgenommen werden. Sie erzeugen eine SQL-Datei mit Anweisungen für alle aufgeführten Datenbanken.

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

### Einzelne Tabellen sichern

Wir geben die Datenbank und die gewünschten Tabellen direkt im Befehl an. Dies ist nützlich für gezielte Exporte, zum Beispiel bei Migration einzelner Tabellen.

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

### Mögliche Optionen für mariadb-dump

<table>
  <thead>
    <tr>
      <th>Option</th>
      <th>Beschreibung</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`--no-data`</td>
      <td>Sichert nur die Struktur, keine Daten</td>
    </tr>
    <tr>
      <td>`--no-create-info`</td>
      <td>Sichert nur die Daten, ohne Tabellenstruktur</td>
    </tr>
    <tr>
      <td>`--routines`</td>
      <td>Sichert Prozeduren und Funktionen</td>
    </tr>
    <tr>
      <td>`--events`</td>
      <td>Sichert geplante Ereignisse</td>
    </tr>
    <tr>
      <td>`--single-transaction`</td>
      <td>Sicherung ohne Sperren bei InnoDB-Tabellen</td>
    </tr>
    <tr>
      <td>`--quick`</td>
      <td>Reduziert Speicherbedarf bei großen Tabellen</td>
    </tr>
  </tbody>
</table>

### MariaDB: Backup automatisieren mit Cron

Automatisieren Sie tägliche Backups mit einem [Cronjob](https://www.ionos.de/digitalguide/hosting/hosting-technik/cronjob/). Öffnen Sie die Cron-Tabelle:

```bash
crontab -e
```

Fügen Sie diese Zeile ein, um beispielsweise täglich um 3 Uhr ein Backup zu erstellen:

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

Speichern Sie Passwörter aus Sicherheitsgründen nicht direkt in der Cron-Tabelle. Legen Sie stattdessen eine Konfigurationsdatei `.my.cnf` im Home-Verzeichnis an:

```bash
[client]
user=root
password=password
```

Setzen Sie die Zugriffsrechte:

```bash
chmod 600 ~/.my.cnf
```

Verwenden Sie dann in Cronjobs folgende Variante ohne Passwort:

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

Nutzen Sie `mariadb-dump` vorzugsweise für flexible, systemunabhängige Backups und kleinere Datenmengen. Für produktive Systeme mit großen Datenbeständen empfiehlt sich `mariadb-backup`. Sichern Sie regelmäßig und prüfen Sie Ihre Backups durch Test-Wiederherstellungen. Nur ein geprüftes Backup schützt Sie zuverlässig vor Datenverlust.


This is a markdown version of: [https://www.ionos.de/digitalguide/hosting/hosting-technik/mariadb-backup/](https://www.ionos.de/digitalguide/hosting/hosting-technik/mariadb-backup/) for AI/LLM consumption.