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
- Automatisiere Backups mit Cron (z. B. täglich um Mitternacht).
- Prüfe regelmäßig deine Dumps mit einem Test-Restore.
- Nutze
-Fc (Custom Format), um selektiv wiederherstellen zu können.
- Kombiniere mit
gzip oder xz, um Speicherplatz zu sparen.
🔹 Übungen
- Sichere deine Datenbank
firma in eine SQL-Datei.
- Komprimiere das Backup mit
gzip.
- Erstelle eine neue Datenbank
firma_test und spiele das Backup dort ein.
- 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