Восстановить последний бэкап через pgBackRest
PostgreSQLБэкап и PITRКоманда
# 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Что делает
Восстанавливает последний бэкап и записывает recovery.signal и restore_command; при запуске PostgreSQL воспроизводит весь заархивированный WAL до последней согласованной точки и выполняет promote на новом timeline.
Когда использовать
Когда каталог данных primary утерян/повреждён или при регулярной проверке того, что бэкапы восстанавливаются.
Внимание
Если восстановленный и старый кластеры одновременно архивируют в одну stanza, репозиторий повреждается; для тестовых восстановлений используйте --archive-mode=off. Под Patroni сначала поставьте кластер на паузу или остановите Patroni, иначе Patroni вмешается. Если существуют табличные пространства или пути вне PGDATA, проверьте опции --tablespace-map и link.
Связанные материалы
- Настроить архивирование WAL для pgBackRest (archive-push/archive-get)
- Создать stanza pgBackRest и проверить архивирование (stanza-create/check)
- Снять полный, дифференциальный и инкрементальный бэкапы через pgBackRest
- Показать каталог бэкапов pgBackRest и диапазон архива WAL (info)
- Восстановить на момент времени через pgBackRest (PITR, --type=time)
- Быстро пересоздать standby через delta restore pgBackRest