Backup von Postgres

Wer kennt es nicht, man hat Daten verloren, weil man kein Backup davon hatte.

Hier geht es darum, wie man die Datenbanken von Postgresql sichert und wiederherstellt.


Backup und Restore über PGdump

Installation von psql

Archlinux:

Code
sudo pacman -S postgresql


Ubuntu/Debian/RaspberryPi OS

Code
sudo apt-get install -y postgresql postgresql-contrib


Einzelne Datenbank sichern

Code
pg_dump -h <host> -p 5432 -W -U <username> <datenbank> > datenbank.sql

Man wird nach einem Passwort gefragt. Wenn man das umgehen möchte, weil man z.B. das Backup automatisieren möchte muss man die Umgebungsvariable PGPASSWORD setzen. So sieht das dann aus:

Code
PGPASSWORD="<Passwort>" pg_dump --no-owner -h <host>-p 5432 -U <username> <datenbank> > datenbank.sql


Mit dem  > datenbank.sql wird die Ausgabe in eine Dateigeschrieben. Das datenbank.sql sollte man durch ein Pfad tauschen, wo am Ende das Backup liegen soll.


Alle Datenbanken sichern


Möchte man allse Datenbanken sichern sieht der Befehl so aus:

Code
pg_dumpall -h <host> -p 5432 -W -U <username> > datenbanken.sql


Und so, wenn man den Befehl in einem Skript nutzen möchte:

Code
PGPASSWORD="<Passwort>" pg_dump_all --no-owner -h <host>-p 5432 -U <username> > datenbanken.sql


Restore

Für den Restore den Backups muss man einfach

Code
psql -h 127.0.0.1 -p 5432 -U <username> -W -d <Datenbank> < backup.sql

auführen.


Wichtig

Man muss SQL-Datenbanken immer Dumpen. Wenn man einfach den Ordner sichert, in welchem die Daten von der Datenbank liegen kann man das Backup nicht wieder herstellen.

Wer Fehler findet darf sie behalten.:danke:

2x 320W an Solis 4G Mini 1000 (IBN Juni 2020) +EMU Professional 3/75

Link zur FAQ von pflanze