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
→ Benutzerfirma
→ Datenbanknamefirma.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
oderxz
, 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) 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