DBAtlas · Atlas d'exploitation des bases de données

Restaurer la dernière sauvegarde avec pgBackRest

PostgreSQLSauvegarde et PITR

Commande

# PostgreSQL must be stopped and PGDATA empty (otherwise use --delta)
sudo systemctl stop postgresql-16
sudo -u postgres pgbackrest --stanza=<stanza> --log-level-console=info restore
# From a specific backup: --set=<backup_label>
# When restoring to another server for testing, disable archiving:
# sudo -u postgres pgbackrest --stanza=<stanza> --archive-mode=off restore
sudo systemctl start postgresql-16

Ce que fait la commande

Restaure la dernière sauvegarde et écrit recovery.signal et restore_command ; au démarrage, PostgreSQL rejoue tout le WAL archivé jusqu'au point cohérent le plus récent et se promeut sur une nouvelle timeline.

Quand l'utiliser

Lorsque le répertoire de données de la primaire est perdu/corrompu, ou pour tester régulièrement que les sauvegardes sont restaurables.

Attention

Si le cluster restauré et l'ancien cluster archivent en même temps dans la même stanza, le dépôt est corrompu ; utilisez --archive-mode=off pour les restaurations de test. Sous Patroni, mettez d'abord le cluster en pause ou arrêtez Patroni, sinon Patroni interfère. S'il existe des tablespaces ou des chemins hors de PGDATA, vérifiez les options --tablespace-map et link.

Ouvrir dans DBAtlas →

Voir aussi