LU12b: Backups & Restore (mysqldump) – Daten sichern & wiederherstellen

Lernziele

  • Backups erstellen (Schema, Daten, Vollbackup)
  • Restore testen & validieren
  • Betriebshinweise: Konsistenz, Schutz, Automatisierung
  • Schutz vor Fehlbedienung, Defekt, Ransomware, rechtlichen Anforderungen.
  • Nur Backups, die regelmässig getestet werden, gelten als verlässlich.

Alle Befehle im Terminal ausführen. -u root -p fragt nach dem Passwort. Für InnoDB immer mit –single-transaction für konsistente Dumps.

1.1 Vollbackup (Struktur + Daten + Routinen/Trigger)

mysqldump -u root -p --single-transaction --routines --triggers app_demo > app_demo_full.sql

1.2 Nur Struktur

mysqldump -u root -p --no-data app_demo > app_demo_schema.sql

1.3 Nur Daten

mysqldump -u root -p --no-create-info app_demo > app_demo_data.sql

2.1 Ziel-DB anlegen & Import

mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS app_demo_restore"
mysql -u root -p app_demo_restore < app_demo_full.sql

2.2 Validierung (Datenbestand vergleichen)

SELECT COUNT(*) AS rows_src FROM app_demo.notes;
SELECT COUNT(*) AS rows_dst FROM app_demo_restore.notes;

Auftrag 1) Erzeuge einen Voll-Dump von app_demo. 2) Stelle ihn nach app_demo_restore wieder her. 3) Vergleiche Anzahl Zeilen in notes. 4) Dokumentiere 2 Screenshots (Dump-Befehl & Restore-Resultat).

  • Zeitpunkt: Dumps ausserhalb von Peak-Zeiten.
  • Aufbewahrung: Rotation (z. B. 7/4/12), verschlüsselt ablegen, Zugriff beschränken.
  • Automatisierung: Cron/Task Scheduler, Log prüfen.
  • Privacy: Backups können personenbezogene Daten enthalten → DSG/DSGVO beachten.
  • Wiederherstellung üben: Restore-Tests in separatem Schema/Server.
  • Access denied beim Import → prüfe Benutzerrechte auf Zielschema.
  • Foreign Key Errors → Reihenfolge/Constraints beachten; bei Sonderfällen:
SET FOREIGN_KEY_CHECKS=0; -- Import
SET FOREIGN_KEY_CHECKS=1; -- danach wieder aktivieren
  • Grosse Dumps → ggf. –max_allowed_packet erhöhen, oder per Split importieren.
  • Wozu dient –single-transaction bei mysqldump?
  • Unterschied: Struktur-Dump vs. Daten-Dump?
  • Warum sind verschlüsselte Backups wichtig?
  • Wie validierst du, dass ein Restore vollständig war?

Ausblick auf Backend (Node/Express) Umgebungsvariablen für getrennte DB-User:

  • APP_RO (nur SELECT), APP_RW (CRUD), APP_ADMIN (Migrationen).

So hältst du Least Privilege auch im Code ein.

  • modul/m290_guko/learningunits/lu12/theorie/b_backups_restore.txt
  • Zuletzt geändert: 2025/11/11 21:20
  • von gkoch