Backup PostGreSQL Datenbank

Hallo zusammen,
ich habe vor ein paar Tagen von einer *.mldb auf eine PostGreSQL Datenbank gewechselt. Läuft wunderbar.

Nun komme ich aber mit dem Backup nicht zurecht.
Kann mir einer ein cmd sagen das allumfänglich alle wichtigen Daten der mAirlist Datenbank sichert sodass diese auch wieder 1:1 hergestellt werden kann?
Mit pg_dump?

Problem sind die vielen Parameter. Bin mir da nicht sicher was ich alles verwenden muss. Aktuelle Version 17
Danke.

PS: Wäre es seitens mAirList nicht auch sinnvoll das innerhalb des Programmes ausführen zu können?

Im pg admin findest Du eine Rechtsklick-Option, um das Backup der Datenbank zu erstellen.

Dateinamen eingeben:

und diese Häkchen setzen:

So funktioniert es bei mir wunderbar und sämtliche Daten sind beim Backup wieder da.

2 Likes

Poah. Wieso immer die Fragen wenn man nicht am PC sitzt :stuck_out_tongue:

Stefan hat es gut erklärt. Ich habe da auch jede Nacht ein Script laufen via pg_dump.
Klappt einwandfrei.

Hey Liam,
könntest du mir oder uns dieses Script teilen?
Würde das gerne Automatisieren

1 Like

Danke Stefan, genau um diese Parameter ging es mir wenn ich von Hand exportiere.

Vielen Dank

1 Like

Da muss ich dich etwas verschieben. Bin heute noch bisschen on the road aber kann ich gerne später bzw. morgen machen :+1:

1 Like

Also, unter Windows hatte ich es immer wie folgt:

SET PG_BIN="D:\PostgreSQL\setup\bin\pg_dump.exe"
SET PG_HOST=localhost
SET PG_PORT=5432
SET PG_DATABASE=mairlist
SET PG_USER=username
SET PG_PATH=D:\Backup
SET DATEFORMAT=%date:~0,2%%date:~3,2%%date:~6,4%
SET PG_FILENAME=%PG_PATH%\%PG_DATABASE%_%DATEFORMAT%.sql

%PG_BIN% -h %PG_HOST% -p %PG_PORT% -U %PG_USER% %PG_DATABASE% > %PG_FILENAME%

xcopy /s "%PG_FILENAME%" "S:\mAirList"

S: ist bei mir das Backup-Laufwerk.


Unter Linux habe ich es aktuell wie folgt:

#!/bin/bash

BACKUP_DIR="/path/to/backup" # Lokal
NETWORK_DIR="/mnt/backup" # Netzlaufwerk
DATE=$(date +"%d%m%Y")

# PostgreSQL backup
pg_dump -U username dbname  -F p -f $BACKUP_DIR/mairlist_$DATE.sql

# Optional
# gzip $BACKUP_DIR/mairlist_$DATE.sql

# Copy SQL backups to network directory
cp "$BACKUP_DIR/mairlist_$DATE.sql" "$NETWORK_DIR/mAirList"

# Delete old backups older than 2 days
find $BACKUP_DIR -type f -name "*.sql" -mtime +2 -delete
find "$NETWORK_DIR/mAirList" -type f -name "*.sql" -mtime +2 -delete

Oder so ähnlich… Und dann halt je nachdem das ganze unter Windows über die Aufgabenplanung einstellen oder Linux als Cronjob.

Klappt zuverlässig und ohne Probleme.

2 Likes