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