Restaurar a un punto en el tiempo con pgBackRest (PITR, --type=time)
PostgreSQLBackup y PITRComando
sudo systemctl stop postgresql-16
sudo -u postgres pgbackrest --stanza=<stanza> --delta --type=time "--target=2026-10-08 14:30:00+03" --target-action=pause restore
sudo systemctl start postgresql-16
# Recovery stops at the target (read-only); validate the data:
psql -X -c "SELECT pg_is_in_recovery(), pg_last_xact_replay_timestamp();"
# If correct, end recovery and open read-write on a new timeline:
psql -X -c "SELECT pg_wal_replay_resume();"Qué hace
Restaura un backup que terminó antes de la hora de destino y reproduce el WAL solo hasta el destino; target-action=pause se detiene en el destino para que pueda validar los datos, y pg_wal_replay_resume() lo promueve.
Cuándo usarlo
Para volver al momento justo anterior a un error lógico como un DELETE/DROP/UPDATE accidental.
Precaución
En este clúster se pierden todos los cambios posteriores al destino; cuando sea posible, ejecute el PITR en un servidor aparte y traslade solo los datos afectados con pg_dump. Indique explícitamente la zona horaria en el destino. pgBackRest 2.24+ selecciona automáticamente un backup adecuado anterior al destino; en versiones anteriores indique con --set un backup que terminó antes del destino. Si el destino es anterior a la hora de fin del backup, la restauración no puede alcanzar la consistencia.
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 el último backup con pgBackRest
- Reconstruir rápidamente un standby con delta restore de pgBackRest