Voll-, differenzielle und inkrementelle Backups mit pgBackRest erstellen
PostgreSQLBackup & PITRBefehl
sudo -u postgres pgbackrest --stanza=<stanza> --type=full backup
sudo -u postgres pgbackrest --stanza=<stanza> --type=diff backup # changes since the last full
sudo -u postgres pgbackrest --stanza=<stanza> --type=incr backup # changes since the last backup of any type
# cron example (postgres user): full on Sunday, diff on other days
# 30 1 * * 0 pgbackrest --stanza=<stanza> --type=full backup
# 30 1 * * 1-6 pgbackrest --stanza=<stanza> --type=diff backupWas es tut
Ein Vollbackup (full) kopiert den gesamten Cluster, diff kopiert seit dem letzten full geänderte Dateien, incr seit dem letzten Backup beliebigen Typs geänderte Dateien; am Ende wird geprüft, dass das benötigte WAL archiviert ist, und expire läuft automatisch gemäß Aufbewahrung.
Wann einsetzen
In einem regelmäßigen Backup-Zeitplan: typischerweise wöchentlich full + täglich diff/incr, bei großen Clustern häufiger incr.
Vorsicht
Ohne vorheriges full werden diff-/incr-Anforderungen automatisch zu full hochgestuft. Eine längere incr-Kette erhöht Restore-Zeit und Abhängigkeiten; geht ein Backup der Kette verloren, sind spätere unbrauchbar. Um die Primary zu entlasten, sichere mit backup-standby=y von einem Standby (die Primary wird für die Koordination trotzdem gebraucht).
Verwandte Einträge
- WAL-Archivierung für pgBackRest konfigurieren (archive-push/archive-get)
- pgBackRest-Stanza anlegen und Archivierung prüfen (stanza-create/check)
- pgBackRest-Backup-Katalog und WAL-Archivbereich anzeigen (info)
- Letztes Backup mit pgBackRest wiederherstellen
- Mit pgBackRest auf einen Zeitpunkt wiederherstellen (PITR, --type=time)
- Standby mit pgBackRest-Delta-Restore schnell neu aufbauen