MySQL/MariaDB Backup & Restore | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

MySQL MariaDB Backup Restore

Zuletzt aktualisiert: 11.01.2026 um 11:52 Uhr

MySQL/MariaDB Backup & Restore

Regelmäßige Datenbank-Backups sind unverzichtbar. Diese Anleitung zeigt verschiedene Methoden zur Sicherung und Wiederherstellung von MySQL und MariaDB.

mysqldump - Standard-Methode

Einzelne Datenbank sichern

# Einfaches Backup
mysqldump -u root -p datenbankname > backup.sql

# Mit Komprimierung
mysqldump -u root -p datenbankname | gzip > backup.sql.gz

# Mit Datum im Dateinamen
mysqldump -u root -p datenbankname | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz

Alle Datenbanken sichern

mysqldump -u root -p --all-databases > all_databases.sql

# Mit Komprimierung
mysqldump -u root -p --all-databases | gzip > all_databases.sql.gz

Empfohlene Optionen

mysqldump -u root -p \
  --single-transaction \
  --routines \
  --triggers \
  --events \
  datenbankname > backup.sql
Option Beschreibung
--single-transaction Konsistentes Backup ohne Locks (InnoDB)
--routines Stored Procedures sichern
--triggers Trigger sichern
--events Events sichern
--quick Speicherschonend für große DBs

Wiederherstellung

# Aus SQL-Datei
mysql -u root -p datenbankname < backup.sql

# Aus komprimierter Datei
gunzip < backup.sql.gz | mysql -u root -p datenbankname

# Neue Datenbank erstellen und wiederherstellen
mysql -u root -p -e "CREATE DATABASE neue_db"
mysql -u root -p neue_db < backup.sql

Automatisches Backup-Script

sudo nano /opt/scripts/mysql-backup.sh
#!/bin/bash

# Konfiguration
BACKUP_DIR="/var/backups/mysql"
MYSQL_USER="backup_user"
MYSQL_PASS="sicheres_passwort"
RETENTION_DAYS=7

# Datum
DATE=$(date +%Y%m%d_%H%M%S)

# Verzeichnis erstellen
mkdir -p $BACKUP_DIR

# Alle Datenbanken auflisten und sichern
databases=$(mysql -u$MYSQL_USER -p$MYSQL_PASS -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|sys)")

for db in $databases; do
    echo "Sichere $db..."
    mysqldump -u$MYSQL_USER -p$MYSQL_PASS \
        --single-transaction \
        --routines \
        --triggers \
        $db | gzip > "$BACKUP_DIR/${db}_${DATE}.sql.gz"
done

# Alte Backups löschen
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete

echo "Backup abgeschlossen!"
sudo chmod +x /opt/scripts/mysql-backup.sh

Backup-Benutzer erstellen

mysql -u root -p
CREATE USER 'backup_user'@'localhost' IDENTIFIED BY 'sicheres_passwort';
GRANT SELECT, SHOW VIEW, TRIGGER, LOCK TABLES, PROCESS, RELOAD ON *.* TO 'backup_user'@'localhost';
FLUSH PRIVILEGES;

Cronjob einrichten

sudo crontab -e
# Täglich um 3 Uhr morgens
0 3 * * * /opt/scripts/mysql-backup.sh >> /var/log/mysql-backup.log 2>&1

Backup auf Remote-Server

# Via SSH/SCP
mysqldump -u root -p datenbankname | gzip | ssh user@backup-server "cat > /backups/db_$(date +%Y%m%d).sql.gz"

# Via rsync nach lokalem Backup
rsync -avz /var/backups/mysql/ user@backup-server:/backups/mysql/

Backup verifizieren

# SQL-Datei prüfen (letzte Zeile sollte "Dump completed" sein)
tail -1 backup.sql

# Komprimierte Datei prüfen
gunzip -t backup.sql.gz && echo "OK" || echo "FEHLER"

# Test-Restore in separate DB
mysql -u root -p -e "CREATE DATABASE test_restore"
gunzip < backup.sql.gz | mysql -u root -p test_restore
mysql -u root -p -e "DROP DATABASE test_restore"

Größere Datenbanken

# Mit Fortschrittsanzeige (pv installieren)
sudo apt install pv -y
mysqldump -u root -p datenbankname | pv | gzip > backup.sql.gz

# Parallel dumpen (mydumper)
sudo apt install mydumper -y
mydumper -u root -p passwort -B datenbankname -o /backup/dir/

# Wiederherstellen mit myloader
myloader -u root -p passwort -B datenbankname -d /backup/dir/

Best Practices

  1. Regelmäßig testen: Restore-Tests durchführen
  2. Offsite-Backup: Kopie auf externem Server
  3. Verschlüsselung: Sensitive Daten verschlüsseln
  4. Monitoring: Backup-Jobs überwachen
  5. Dokumentation: Restore-Prozess dokumentieren

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120