Egal wie stabil ein System ist – ohne Backups bist du im Notfall verloren. PostgreSQL bietet mit pg_dump und pg_restore mächtige Werkzeuge, um Datenbanken zu sichern und wiederherzustellen.

🔹 Einfaches Backup mit pg_dump

Eine einzelne Datenbank sichern:
pg_dump -U postgres firma > firma.sql
  • -U postgres → Benutzer
  • firma → Datenbankname
  • firma.sql → Ausgabedatei
👉 Ergebnis: Eine SQL-Datei, die alle Tabellen und Daten enthält.

🔹 Komplettes Cluster-Backup mit pg_dumpall

Alle Datenbanken sichern:
pg_dumpall -U postgres > cluster.sql
👉 Praktisch, wenn mehrere Datenbanken laufen.

🔹 Komprimiertes Backup

Direkt komprimieren mit gzip:
pg_dump -U postgres firma | gzip > firma.sql.gz

🔹 Restore (SQL-Datei)

Einfaches Einspielen:
psql -U postgres -d firma < firma.sql
👉 Die Datenbank firma muss vorher existieren.

🔹 Restore mit pg_restore

Für Custom Dumps (empfohlen):
pg_dump -U postgres -Fc firma > firma.dump
👉 -Fc = Custom Format (binär, effizienter). Wiederherstellen:
pg_restore -U postgres -d firma firma.dump

🔹 Restore in neue Datenbank

Falls du eine frische Datenbank anlegen willst:
createdb -U postgres firma_neu
pg_restore -U postgres -d firma_neu firma.dump

🔹 Unterschiede zu MySQL/MariaDB

  • MySQL: mysqldump erzeugt nur SQL-Dateien.
  • PostgreSQL: pg_dump kann verschiedene Formate → flexibler.
  • PostgreSQL trennt zwischen Cluster-Backup (pg_dumpall) und einzelnen Datenbanken (pg_dump).

🔹 Tipps für Backups

  1. Automatisiere Backups mit Cron (z. B. täglich um Mitternacht).
  2. Prüfe regelmäßig deine Dumps mit einem Test-Restore.
  3. Nutze -Fc (Custom Format), um selektiv wiederherstellen zu können.
  4. Kombiniere mit gzip oder xz, um Speicherplatz zu sparen.

🔹 Übungen

  1. Sichere deine Datenbank firma in eine SQL-Datei.
  2. Komprimiere das Backup mit gzip.
  3. Erstelle eine neue Datenbank firma_test und spiele das Backup dort ein.
  4. Bonus: Erstelle ein Backup im Custom Format und stelle nur die Tabelle kunden wieder her.

✅ Zusammenfassung

  • Backups mit pg_dump (einzelne DB) oder pg_dumpall (komplettes Cluster).
  • Wiederherstellung mit psql (SQL-Dateien) oder pg_restore (Custom Dumps).
  • PostgreSQL ist flexibler als MySQL bei Backup-Formaten.
  • Backups immer automatisieren und regelmäßig testen.
👉 Im nächsten Kapitel runden wir den Kurs ab mit Bonus-Kapitel 9: Tipps für Admins - Performance, Logging und praktische Tools.  

📚 Inhaltsverzeichnis

👉 psql Kapitel 1: Installation & Anmeldung mit psql 👉 psql Kapitel 2: Benutzer & Rollen in PostgreSQL 👉 psql Kapitel 3: Datenbanken & Tabellen erstellen 👉 psql Kapitel 4: CRUD-Befehle (SELECT, INSERT, UPDATE, DELETE) 👉 psql Kapitel 5: Schlüssel & Constraints in PostgreSQL 👉 psql Kapitel 6: Indizes & Performance 👉 psql Kapitel 7: Erweiterungen & Spezialfunktionen 👉 psql Kapitel 8: Backups & Restore in PostgreSQL

⭐ Bonus-Kapitel

👉 psql Kapitel 9 (Bonus): Admin-Tipps & Best Practices für PostgreSQL