pgBackRest
Automatización de copias de seguridad físicas y PITR para clústeres PostgreSQL 18.4 autohospedados: configuración de stanza, archivado de WAL, simulacros de restauración e integración con Patroni.
Busca en todas las páginas de la documentación
Automatización de copias de seguridad físicas y PITR para clústeres PostgreSQL 18.4 autohospedados: configuración de stanza, archivado de WAL, simulacros de restauración e integración con Patroni.
Tarjeta de referencia rápida para la receta: lista para copiar y pegar.
# /etc/pgbackrest/pgbackrest.conf
[global]
repo1-type=s3
repo1-s3-bucket=pg-backups-prod
repo1-s3-region=us-east-1
repo1-retention-full=4
repo1-cipher-type=aes-256-cbc
[main]
pg1-path=/var/lib/postgresql/18/main
pg1-port=5432pgbackrest --stanza=main stanza-create
pgbackrest --stanza=main backup --type=full
pgbackrest --stanza=main checkCuándo usar esto:
Paso 1: Habilitar el archivado en PostgreSQL
ALTER SYSTEM SET archive_mode = on;
ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=main archive-push %p';
SELECT pg_reload_conf();# Verificar el flujo de archivo WAL
pgbackrest --stanza=main checkPaso 2: Cronograma de copia de seguridad programada
# /etc/cron.d/pgbackrest
0 2 * * 0 postgres pgbackrest --stanza=main backup --type=full
0 2 * * 1-6 postgres pgbackrest --stanza=main backup --type=diffPaso 3: Simulacro de restauración en un host aislado
# En el sandbox de restauración (directorio de datos vacío)
pgbackrest --stanza=main --delta restore
pg_ctl -D /var/lib/postgresql/18/main start
psql -c "SELECT pg_is_in_recovery(), now();"Lo que esto demuestra:
archive-push para PITRcheck valida el conjunto de copias de seguridad y la continuidad del archivo antes de que los necesite--delta restore evita la descarga completa al ensayar mensualmente| Tipo | Cuándo | Datos de restauración |
|---|---|---|
| full | Semanalmente | Todos los archivos del clúster |
| diff | Diariamente vs. la última completa | Bloques modificados desde la completa |
| incr | Opcionalmente durante el día | Bloques modificados desde la última copia de seguridad de cualquier tipo |
[main]
backup-standby=y
pg2-host=replica.internal
pg2-path=/var/lib/postgresql/18/mainhot_standby = on y no esté retrasada durante la ventana de copia de seguridadpgbackrest --stanza=main info
pgbackrest --stanza=main verify-- Después del simulacro de restauración
SELECT count(*) FROM pg_database;
SELECT max(created_at) FROM app.orders; -- Fila de prueba específica de la aplicaciónpg_basebackup cron más pgBackRest en el mismo clúster causa riesgo de corrupción y costo duplicado de S3. Solución: un solo agente.archive_command: WAL se acumula en el disco principal si el envío falla. Solución: monitorizar pg_stat_archiver, alertar sobre failed_count.pg1-path incorrecto: la stanza apunta a la ruta de Debian pero RHEL usa una estructura diferente. Solución: coincidir exactamente con SHOW data_directory;.repo1-s3-* de mínimo privilegio.| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
| Copias de seguridad automáticas de RDS/Aurora | Postgres administrado por AWS | Necesita control a nivel de archivo en autohospedado |
pg_basebackup + WAL manual | Pequeño nodo único de desarrollo | PITR de producción con política de retención |
| Barman | El equipo ya está estandarizado en Barman | Adopción de pgBackRest en Greenfield con operaciones nativas de S3 |
No. La copia de seguridad física más PITR es para la recuperación ante desastres. Mantenga pg_dump periódicos para la restauración lógica a nivel de tabla y las actualizaciones de versiones principales.
repo1-retention-full=4 mantiene cuatro copias de seguridad completas. Añada una política de retención de WAL alineada con el RPO (a menudo 7-30 días). Documentar en el runbook de DR.
La restauración física permanece en la misma versión principal. Las actualizaciones de versión principal utilizan pg_upgrade o replicación lógica, no la restauración entre versiones principales de pgBackRest.
checkVersiones de la pila: Esta página se escribió para PostgreSQL 18.4, pgBackRest 2.55+ y Patroni 4.x en clústeres autohospedados.
Revisado por Chris St. John·Última actualización: 16 jul 2026