PostgreSQL : Backup einer Datenbank incl. Indexes
Problem : Man möchte eine postgreSQL Datenbank inkl. der Indexes sichern, normalerweise ist die Idee suboptimal aber wenn die Datenbank so groß ist das ein Berechnen der Indexes schon 3 Tage benötigt sichert man diese eben mit.
Lösung : Hier zeige ich einen Weg auf der bei mir funktioniert.
Als erstes legen wir die benötigten Ordner an
Einspielen des Backups
Lösung : Hier zeige ich einen Weg auf der bei mir funktioniert.
Als erstes legen wir die benötigten Ordner an
mkdir -p /postgres/archives mkdir -p /postgres/backupdann passen wir die Konfiguration des Servers an
vi /etc/postgresql/9.4/main/postgresql.confans Ende kommt unsere zusätzliche Konfiguration
max_wal_senders=1 wal_level=hot_standby archive_mode=on archive_command='cp %p /postgres/archives/%f'dann passen wir noch die pg_hba.conf an
vi /etc/postgresql/9.4/main/pg_hba.confdort schreiben wir an das Ende
local replication postgres trustdann starten wir den Dienst erstmal neu
systemctl restart postgresqlJetzt können wir ein Backup mit dem Tool pg_basebackup durchführen
pg_basebackup -x -Ft -P -p 5432 -D /postgres/backup/$(date +%Y%m%d)Wenn der Befehl durchgelaufen ist sollte im Ordner /postgres/backup/[DATUM]/ die Datei base.tar vorhanden sein
Einspielen des Backups
systemctl stop postgresqlin den Data Ordner wechseln z.b. /var/lib/postgresql/9.4/main dort mit tar zurückspielen
tar -xvf /backup/20170726/base.tgzdann den Server neu starten und glücklich sein
systemctl start postgresql