pgBackRest es una solución gratuita y de código abierto para realizar copias de seguridad y restauraciones en PostgreSQL, diseñada para cubrir desde pequeñas bases de datos hasta entornos empresariales de varios terabytes. La versión estable actual es la v2.56.0, distribuida bajo licencia MIT, con soporte activo de la comunidad y organizaciones como Crunchy Data y Resonate.
Principales características
Copias de seguridad y restauración en paralelo
La compresión suele ser el cuello de botella en los respaldos. pgBackRest lo soluciona con procesamiento paralelo y algoritmos eficientes como lz4 y zstd, lo que acelera enormemente las operaciones.
Operación local o remota
Un protocolo propio permite hacer backup, restaurar y archivar localmente o a través de TLS/SSH con mínima configuración. Nunca se requiere acceso remoto a PostgreSQL, lo que mejora la seguridad.
Repositorios múltiples
Permite definir varios repositorios, por ejemplo:
- Un repositorio local con retención mínima para restauraciones rápidas.
- Un repositorio remoto con mayor retención para redundancia y acceso corporativo.
Tipos y niveles de backup
- Completos, diferenciales e incrementales.
- A nivel de archivo o bloque, donde los incrementales a nivel de bloque ahorran espacio copiando solo las partes modificadas.
Políticas de retención y caducidad del archivo WAL
Se pueden definir políticas flexibles de rotación y mantener el archivo WAL solo para los backups más recientes o para todos, según la estrategia.
Integridad de las copias
- Calcula checksums por cada archivo, verificados durante backup y restauración.
- Garantiza consistencia esperando a que todos los segmentos WAL necesarios lleguen al repositorio.
- Los respaldos pueden montarse directamente como clusters PostgreSQL si se desactiva la compresión y se habilitan enlaces duros.
Validación de checksums de páginas
Si PostgreSQL tiene activados los checksums, pgBackRest los valida en todos los archivos copiados, detectando corrupción a nivel de página antes de que los backups válidos expiren.
Reanudación de backups
Si un respaldo se interrumpe, puede reanudarse desde el último punto, comparando checksums para evitar retransmitir datos intactos.
Compresión y checksums en flujo
Las operaciones de compresión y verificación se realizan en streaming mientras los archivos se copian, optimizando ancho de banda y CPU tanto local como remotamente.
Restauración delta
Gracias a los checksums guardados, en una restauración delta se eliminan los archivos ausentes, se mantienen los que coinciden y se restauran solo los necesarios. Con procesamiento paralelo, los tiempos de recuperación se reducen drásticamente.
Envío y recuperación de WAL en paralelo y asíncronos
- WAL push asíncrono: comprime y transfiere en paralelo, vital en entornos de alto volumen de escritura.
- WAL get asíncrono: mantiene segmentos precargados y listos para replay, acelerando la recuperación en conexiones de alta latencia (p. ej. S3).
- Evita errores de configuración comprobando versión de PostgreSQL e identificadores de sistema.
Soporte de tablespaces y enlaces
- Soporta tablespaces, que pueden remapearse en restauración.
- Los enlaces de archivos/directorios pueden restaurarse como enlaces, normalizarse o redirigirse.
Compatibilidad con almacenamiento en la nube
Los repositorios pueden ubicarse en S3, Azure o GCS, con capacidad prácticamente ilimitada y retención flexible.
Cifrado
Los repositorios pueden cifrarse para proteger las copias de seguridad en cualquier ubicación.
Compatibilidad con múltiples versiones de PostgreSQL
Soporta 10 versiones de PostgreSQL simultáneamente: las cinco en soporte oficial y las últimas cinco EOL, ofreciendo una amplia ventana de actualización.
Primeros pasos
pgBackRest está pensado para ser fácil de configurar y operar:
- Guías de usuario para diversos sistemas operativos y versiones de PostgreSQL.
- Referencia completa de comandos CLI.
- Documentación de configuración detallada para crear archivos de
pgbackrest.conf
.
La versión 2 es compatible hacia atrás con la v1, por lo que configuraciones y repositorios existentes siguen siendo válidos.
Comunidad y contribuciones
- Licencia MIT: uso libre en entornos personales o comerciales, sin restricciones.
- Se aceptan contribuciones de código, mejoras y reportes de bugs.
- Los reportes de errores se atienden con prioridad.
Soporte
Aunque pgBackRest es muy potente, diseñar una política de recuperación ante desastres completa (con replicación y backup) puede ser complejo. Existen empresas especializadas en PostgreSQL que ofrecen soporte profesional para integrar pgBackRest en producción.
Reconocimientos
El desarrollo de pgBackRest ha sido apoyado por Crunchy Data y Resonate.
🔗 Repositorio oficial en GitHub: pgBackRest