DBAtlas · Atlas de operaciones de bases de datos

Restaurar el último backup con pgBackRest

PostgreSQLBackup y PITR

Comando

# 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

Qué 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.

Abrir en DBAtlas →

Relacionado