pgBackRest es una solución confiable de respaldo y restauración para PostgreSQL que se adapta sin problemas a las bases de datos y cargas de trabajo más grandes.
pgBackRest v2.54.0 es la versión estable actual. Las notas de la versión se encuentran en la página Lanzamientos.
¡Encuéntranos en GitHub y danos una estrella si te gusta pgBackRest!
La compresión suele ser el cuello de botella durante las operaciones de copia de seguridad, por lo que pgBackRest resuelve este problema con procesamiento paralelo y algoritmos de compresión más eficientes como lz4 y zstd.
Un protocolo personalizado permite a pgBackRest realizar copias de seguridad, restaurar y archivar local o remotamente a través de TLS/SSH con una configuración mínima. También se proporciona una interfaz para consultar PostgreSQL a través de la capa de protocolo, de modo que nunca se requiere acceso remoto a PostgreSQL, lo que mejora la seguridad.
Múltiples repositorios permiten, por ejemplo, un repositorio local con retención mínima para restauraciones rápidas y un repositorio remoto con una retención más prolongada para redundancia y acceso en toda la empresa.
Se admiten copias de seguridad completas, diferenciales e incrementales. pgBackRest no es susceptible a los problemas de resolución de tiempo de rsync, lo que hace que las copias de seguridad diferenciales e incrementales sean seguras sin la necesidad de realizar una suma de comprobación de cada archivo. Las copias de seguridad a nivel de bloque ahorran espacio al copiar solo las partes de los archivos que han cambiado.
Se pueden establecer políticas de retención para copias de seguridad completas y diferenciales para crear cobertura para cualquier período de tiempo. El archivo WAL se puede mantener para todas las copias de seguridad o estrictamente para las copias de seguridad más recientes. En el último caso, el WAL necesario para que las copias de seguridad anteriores sean coherentes se mantendrá en el archivo.
Las sumas de verificación se calculan para cada archivo en la copia de seguridad y se vuelven a verificar durante una restauración o verificación. Una vez que una copia de seguridad termina de copiar archivos, espera hasta que cada segmento WAL necesario para que la copia de seguridad sea coherente llegue al repositorio.
Las copias de seguridad en el repositorio se pueden almacenar en el mismo formato que un clúster PostgreSQL estándar (incluidos los espacios de tabla). Si la compresión está deshabilitada y los enlaces físicos están habilitados, es posible crear una instantánea de una copia de seguridad en el repositorio y abrir un clúster de PostgreSQL directamente en la instantánea. Esto resulta ventajoso para bases de datos de escala de terabytes cuya restauración de la forma tradicional requiere mucho tiempo.
Todas las operaciones utilizan fsync a nivel de archivos y directorios para garantizar la durabilidad.
Si las sumas de verificación de página están habilitadas, pgBackRest validará las sumas de verificación de cada archivo que se copie durante una copia de seguridad. Todas las sumas de verificación de las páginas se validan durante una copia de seguridad completa y las sumas de verificación de los archivos que han cambiado se validan durante las copias de seguridad diferenciales e incrementales.
Los errores de validación no detienen el proceso de copia de seguridad, pero se envían advertencias con detalles de exactamente qué páginas no han superado la validación a la consola y al registro de archivos.
Esta característica permite que la corrupción a nivel de página se detecte tempranamente, antes de que caduquen las copias de seguridad que contienen copias válidas de los datos.
Una copia de seguridad interrumpida se puede reanudar desde el punto donde se detuvo. Los archivos que ya se copiaron se comparan con las sumas de verificación en el manifiesto para garantizar la integridad. Dado que esta operación puede realizarse completamente en el host del repositorio, reduce la carga en el host de PostgreSQL y ahorra tiempo ya que el cálculo de la suma de comprobación es más rápido que comprimir y retransmitir datos.
Los cálculos de compresión y suma de comprobación se realizan en secuencia mientras los archivos se copian al repositorio, ya sea que el repositorio esté ubicado local o remotamente.
Si el repositorio está en un host de repositorio, la compresión se realiza en el host de PostgreSQL y los archivos se transmiten en un formato comprimido y simplemente se almacenan en el host del repositorio. Cuando la compresión está desactivada, se utiliza un nivel más bajo de compresión para hacer un uso eficiente del ancho de banda disponible y al mismo tiempo mantener el costo de la CPU al mínimo.
El manifiesto contiene sumas de comprobación para cada archivo de la copia de seguridad, de modo que durante una restauración es posible utilizar estas sumas de comprobación para acelerar enormemente el procesamiento. En una restauración delta, primero se eliminan los archivos que no están presentes en la copia de seguridad y luego se generan sumas de verificación para los archivos restantes. Los archivos que coinciden con la copia de seguridad se dejan en su lugar y el resto de los archivos se restauran como de costumbre. El procesamiento paralelo puede conducir a una reducción drástica de los tiempos de restauración.
Se incluyen comandos dedicados para enviar WAL al archivo y obtener WAL del archivo. Ambos comandos admiten el paralelismo para acelerar el procesamiento y se ejecutan de forma asíncrona para proporcionar el tiempo de respuesta más rápido posible a PostgreSQL.
WAL push detecta automáticamente los segmentos WAL que se envían varias veces y elimina los duplicados cuando el segmento es idéntico; de lo contrario, se genera un error. La inserción WAL asincrónica permite descargar la transferencia a otro proceso que comprime los segmentos WAL en paralelo para obtener el máximo rendimiento. Esta puede ser una característica crítica para bases de datos con un volumen de escritura extremadamente alto.
La obtención de WAL asincrónica mantiene una cola local de segmentos WAL que están descomprimidos y listos para su reproducción. Esto reduce el tiempo necesario para proporcionar WAL a PostgreSQL, lo que maximiza la velocidad de reproducción. Las conexiones y el almacenamiento de mayor latencia (como S3) son los que más se benefician.
Los comandos push y get garantizan que la base de datos y el repositorio coincidan al comparar las versiones de PostgreSQL y los identificadores del sistema. Esto prácticamente elimina la posibilidad de configurar mal la ubicación del archivo WAL.
Los espacios de tabla son totalmente compatibles y, al restaurarlos, se pueden reasignar a cualquier ubicación. También es posible reasignar todos los espacios de tabla a una ubicación con un solo comando, lo cual es útil para restauraciones de desarrollo.
Los enlaces de archivos y directorios son compatibles con cualquier archivo o directorio en el clúster de PostgreSQL. Al restaurar, es posible restaurar todos los enlaces a sus ubicaciones originales, reasignar algunos o todos los enlaces, o restaurar algunos o todos los enlaces como archivos o directorios normales dentro del directorio del clúster.
Los repositorios de pgBackRest se pueden ubicar en almacenes de objetos compatibles con S3, Azure y GCS para permitir una capacidad y retención prácticamente ilimitadas.
pgBackRest puede cifrar el repositorio para proteger las copias de seguridad dondequiera que estén almacenadas.
pgBackRest incluye soporte para diez versiones de PostgreSQL, las cinco versiones compatibles y las últimas cinco versiones EOL. Esto permite tiempo suficiente para actualizar a una versión compatible.
pgBackRest se esfuerza por ser fácil de configurar y operar:
Guías de usuario para varios sistemas operativos y versiones de PostgreSQL.
Referencia de comando para operaciones de línea de comando.
Referencia de configuración para crear configuraciones de pgBackRest.
La documentación para v1 se puede encontrar aquí. No se planean más lanzamientos para la versión 1 porque la versión 2 es compatible con las opciones y repositorios de la versión 1.
¡Las contribuciones a pgBackRest siempre son bienvenidas! Consulte nuestras Pautas de contribución para obtener detalles sobre cómo contribuir con funciones, mejoras o problemas.
pgBackRest es completamente gratuito y de código abierto bajo la licencia MIT. Puede utilizarlo para fines personales o comerciales sin restricción alguna. Los informes de errores se toman muy en serio y se solucionarán lo antes posible.
Crear una política sólida de recuperación ante desastres con estrategias adecuadas de replicación y respaldo puede ser una tarea muy compleja y desalentadora. Es posible que necesite ayuda durante la fase de arquitectura y soporte continuo para garantizar que su empresa siga funcionando sin problemas.
Crunchy Data proporciona versiones empaquetadas de pgBackRest para los principales sistemas operativos y soporte comercial experto durante todo el ciclo de vida para pgBackRest y todo lo relacionado con PostgreSQL. Crunchy Data se compromete a proporcionar soluciones de código abierto sin dependencia de un proveedor, garantizando que siempre se mantenga estrictamente la compatibilidad cruzada con la versión comunitaria de pgBackRest.
Visite Crunchy Data para obtener más información.
El reconocimiento principal es para Stephen Frost por todos sus valiosos consejos y críticas durante el desarrollo de pgBackRest.
Crunchy Data ha aportado mucho tiempo y recursos a pgBackRest y continúa apoyando activamente el desarrollo. Resonate también contribuyó al desarrollo de pgBackRest y permitió que se instalaran versiones tempranas (pero bien probadas) como su principal solución de respaldo de PostgreSQL.
Gráfico de sillón de Sandor Szabo.