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
mkdir -p /postgres/archives
mkdir -p /postgres/backup
dann passen wir die Konfiguration des Servers an
vi /etc/postgresql/9.4/main/postgresql.conf
ans 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.conf
dort schreiben wir an das Ende
local   replication     postgres                                trust
dann starten wir den Dienst erstmal neu
systemctl restart postgresql
Jetzt 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 postgresql
in den Data Ordner wechseln z.b. /var/lib/postgresql/9.4/main dort mit tar zurückspielen
tar -xvf /backup/20170726/base.tgz
dann den Server neu starten und glücklich sein
systemctl start postgresql
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)