Restaurar el último backup con pgBackRest
PostgreSQLBackup y PITRComando
# 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-16Qué hace
Restaura el último backup y escribe recovery.signal y restore_command; al arrancar, PostgreSQL reproduce todo el WAL archivado hasta el punto consistente más reciente y se promueve en un timeline nuevo.
Cuándo usarlo
Cuando el directorio de datos del primario se ha perdido o corrompido, o al comprobar regularmente que los backups son restaurables.
Precaución
Si el clúster restaurado y el antiguo archivan a la vez en la misma stanza, el repositorio se corrompe; use --archive-mode=off en las restauraciones de prueba. Con Patroni, ponga el clúster en pausa o detenga Patroni primero; de lo contrario Patroni interfiere. Si existen tablespaces o rutas fuera de PGDATA, revise las opciones --tablespace-map y link.
Relacionado
- Configurar el archivado de WAL para pgBackRest (archive-push/archive-get)
- Crear la stanza de pgBackRest y verificar el archivado (stanza-create/check)
- Tomar backups completos, diferenciales e incrementales con pgBackRest
- Mostrar el catálogo de backups de pgBackRest y el rango del archivo de WAL (info)
- Restaurar a un punto en el tiempo con pgBackRest (PITR, --type=time)
- Reconstruir rápidamente un standby con delta restore de pgBackRest