Datenbank Backups
Geschrieben von Daniel von PhySonix
Zuletzt aktualisiert Vor 5 Monaten
Einleitung
Dieser Artikel gibt Ihnen einen Überblick wie sie mittels pg_dump ganz einfach ein Full-Datenbank-Backup Ihrer Easy Connect Datenbank erstellen können.
Hier noch ein kleiner Verweis auf die offizielle Dokumentation von PostgreSQL zu pg_dump.
Diese ist wesentlich ausführlicher als unsere kurze Anleitung hier!
Wir haben lange überlegt, ob der Easy Connect Server eine native Backup-Funktion bekommen soll.
Letztendlich haben wir uns dagegen entschieden, weil es mit pg_dump bereits sehr einfach und sehr flexibel möglich ist!
Voraussetzungen
Sie benötigen die PostgreSQL Client Tools und natürlich Zugriff auf die PostgreSQL-Datenbank von Easy Connect.
Also IP und Port (bzw. localhost, wenn der Datenbank-Server selbst das Backup erstellen soll), Benutzername und Passwort für die PostgreSQL-Datenbank und natürlich den Namen der Datenbank (praktisch die selben Daten wie in Easy Connect Server installieren).
PostgreSQL Client Tools (pg_dump) installieren
Die PostgreSQL Client Tools (und damit auch pg_dump), können Sie mit dem PostgreSQL Windows Installer installieren.
Wo Sie diesen Installer finden, haben wir bereits in PostgreSQL installieren beschrieben. Es ist nur wichtig, dass Sie während der Installation die Command Line Tools auswählen!

Dateipfad von pg_dump
Im Installationsverzeichnis von PostgreSQL finden Sie pg_dump dann im bin-Verzeichnis.
C:\Pfad_Zu_PostgreSQL\bin\pg_dump.exeEin Full-Backup erstellen
Aus Sicherheitsgründen kann man das Passwort nicht einfach als Kommandozeilen-Parameter an pg_dump übergeben, sondern muss dieses als Umgebungsvariable übergeben.
Deswegen sieht ein ganz simples Powershell-Script, um mit pg_dump ein Backup zu erstellen, ungefähr so aus:
$env:PGPASSWORD="[PASSWORT]";
&"C:\Pfad_Zu_PostgreSQL\bin\pg_dump.exe" -h [IP] -p [Port] -U [Benutzername] -F c -f "[Ausgabepfad zur Backup-Datei]" [Datenbankname];Hierbei steht -F c für das Backup-Format, in diesem Fall custom - ein komprimiertes Format welches mit pg_restore (offizielle Dokumentation zu pg_restore) wiederhergestellt werden kann.
Wenn die Parameter ersetzt sind, sieht das Powershell-Script dann so aus:
$env:PGPASSWORD="Passwort12345!";
&"C:\Pfad_Zu_PostgreSQL\bin\pg_dump.exe" -h localhost -p 5432 -U postgres -F c -f "C:\backups\easy_connect.backup" easy_connect;Auf der offiziellen Dokumentationsseite von pg_dump sind alle Kommandozeilen-Parameter ausführlich erklärt.
Incremental-Backups erstellen
pg_dump kann nur Full-Backups erstellen, jedes Backup ist also unabhängig von früher erstellten Backups, und enthält alle Daten aus der Datenbank.
Wenn Sie lieber Incremental-Backups erstellen möchten, können Sie das mittels dem pg_basebackup Tool machen, welches auch mit den PostgreSQL Client Tools installiert wird.
Weitere Informationen zu pg_basebackup finden Sie hier in der offiziellen Dokumentation von PostgreSQL.