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:
mysqldumperzeugt nur SQL-Dateien. - PostgreSQL:
pg_dumpkann 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
gzipoderxz, um Speicherplatz zu sparen.
🔹 Übungen
- Sichere deine Datenbank
firmain eine SQL-Datei. - Komprimiere das Backup mit
gzip. - Erstelle eine neue Datenbank
firma_testund spiele das Backup dort ein. - Bonus: Erstelle ein Backup im Custom Format und stelle nur die Tabelle
kundenwieder her.
✅ Zusammenfassung
- Backups mit
pg_dump(einzelne DB) oderpg_dumpall(komplettes Cluster). - Wiederherstellung mit
psql(SQL-Dateien) oderpg_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
