Contents
- ¿Qué es PostgreSQL y por qué hay que hacer copias de seguridad?
- ¿Qué métodos de copia de seguridad están incorporados en Postgres?
- Volcado SQL
- Copia de seguridad a nivel de sistema de archivos
- Archivo continuo de la copia de seguridad de PostgreSQL
- ¿Qué productos existen en el mercado de las copias de seguridad de PostgreSQL y qué pueden aportar?
- Capacidades de Bacula Enterprise en la copia de seguridad y restauración de Postgres
¿Qué es PostgreSQL y por qué hay que hacer copias de seguridad?
PostgreSQL es un plugin diseñado para simplificar los procedimientos de copia de seguridad y restauración. Hay muchas razones por las que sus bases de datos pueden estar en riesgo. Por ejemplo, el fallo de un dispositivo (que puede hacer que todas las instancias dejen de estar disponibles), la corrupción de los datos (que también puede extenderse por las réplicas), un error de software, un error humano, un ataque de ransomware o malware y los requisitos de cumplimiento (como los periodos de retención de datos y el almacenamiento de los mismos).
Si está administrando una base de datos, es fundamental que mantenga copias de seguridad periódicas para no arriesgarse a perder información valiosa y horas de trabajo. Disponer de una sólida estrategia de copia de seguridad y recuperación de la base de datos es una parte crucial de la gestión de datos para cualquier operación.
Un complemento como la copia de seguridad de PostgreSQL también puede ayudarle a evitar costosos fallos que podrían ser motivo de acciones legales. Si ocurre algo que interrumpe su base de datos (debido a errores inocentes o a ataques malintencionados), puede restaurar sus datos y hacer que vuelvan a funcionar rápidamente. Este artículo le explicará cómo hacer una copia de seguridad y restaurar fácilmente las bases de datos Postgres.
¿Qué métodos de copia de seguridad están incorporados en Postgres?
PostgreSQL puede ayudar a los administradores a proteger la integridad de los datos, a los desarrolladores a construir entornos más resistentes y seguros, y a los programadores a crear nuevas aplicaciones. El plugin soporta tres técnicas de copia de seguridad: Volcado de SQL, copia de seguridad a nivel de sistema de archivos y archivado continuo. Veamos cada una de ellas con más detalle.
Volcado SQL
El objetivo de este método de volcado es generar un archivo con comandos SQL que pueda ser devuelto al servidor. Esta información puede ayudarle a recrear la base de datos en el mismo estado en que se encontraba cuando se realizó el volcado. Puede ejecutar este procedimiento desde cualquier host remoto, siempre que tenga acceso a la base de datos (necesitará tener acceso de lectura a todas las tablas de las que quiera hacer una copia de seguridad, por lo que es mejor ejecutar el volcado como superusuario de la base de datos). Los volcados creados con la copia de seguridad de PostgreSQL son internamente consistentes y representan una instantánea de la base de datos tal y como estaba cuando se inició el volcado.
El comando básico para crear un volcado es
pg_dump dbname > dumpfile
Y para restaurar uno:
psql dbname < dumpfile
Una de las ventajas de este método de copia de seguridad es que, por lo general, puede volver a cargar esta salida en nuevas versiones de PostgreSQL y transferir una base de datos a una arquitectura de máquina diferente (por ejemplo, de un servidor de 32 bits a uno de 64 bits).
Copia de seguridad a nivel de sistema de archivos
También puede hacer una copia de seguridad y restaurar una base de datos PostgreSQL copiando los archivos directamente. Por ejemplo, utilizando el comando:
tar -cf backup.tar /usr/local/pgsql/data
Sin embargo, este método se considera un poco más impráctico o inferior en comparación con un vertedero, porque:
- El servidor de la base de datos debe estar apagado para obtener una copia de seguridad utilizable. No puede limitarse a desautorizar las conexiones; tiene que detener el servidor por completo. La razón es que herramientas como tar toman una instantánea no sólo del estado del sistema de archivos, sino también del buffering interno).
- No se puede hacer una copia de seguridad o restaurar sólo las tablas o bases de datos individuales seleccionadas de sus directorios y archivos porque la información que contienen no se puede utilizar sin sus respectivos archivos de registro de confirmaciones.
Las copias de seguridad a nivel de sistema de archivos sólo funcionan para la copia de seguridad y restauración de un clúster de bases de datos completo. Es necesario crear una «instantánea consistente» o «instantánea congelada» de todo el volumen que contiene la base de datos; a continuación, copie todo el directorio de datos a un dispositivo de copia de seguridad y libere la instantánea congelada.
Este procedimiento de copia de seguridad puede realizarse mientras el servidor está en funcionamiento; sólo tenga en cuenta que la copia de seguridad guardará los archivos de la base de datos en un estado como si el servidor no estuviera bien apagado (puede realizar un punto de control justo antes de tomar la instantánea para reducir el tiempo de recuperación). Tenga en cuenta también que una copia de seguridad del sistema de archivos probablemente tendrá un tamaño mayor que un volcado de SQL.
Archivo continuo de la copia de seguridad de PostgreSQL
PostgreSQL mantiene en todo momento un registro de avance de escritura continuo en el subdirectorio pg_wal/, registrando cada cambio realizado en los archivos de datos de la base de datos. El objetivo de este registro es asegurarse de que, en el caso de una caída del sistema, la base de datos pueda recuperar su consistencia. La forma en que PostgreSQL hace esto es «reproduciendo» las entradas del registro que se hicieron desde el último punto de control.
Esta técnica de copia de seguridad puede combinarse con la de copia de seguridad a nivel de sistema de archivos para hacer una copia de seguridad de los archivos WAL. Entonces, si necesita hacer una recuperación, puede restaurar el sistema de archivos y luego reproducir desde los archivos WAL para llevarlo al estado actual. La repetición del registro corregirá cualquier incoherencia interna porque puede combinar una larga secuencia de archivos WAL y conseguir una copia de seguridad continua archivando los archivos WAL. Además, si alimenta estas series de archivos a otra máquina que tenga el mismo archivo de copia de seguridad base, puede tener un sistema de reserva caliente con una copia casi actual de la base de datos.
Sólo hay que tener en cuenta que esta técnica de copia de seguridad sólo puede restaurar grupos enteros de bases de datos y no subconjuntos. También utiliza mucho almacenamiento de archivo porque archiva no sólo la base de datos base sino también todo el tráfico WAL. Sin embargo, mucha gente prefiere esta forma por su mayor fiabilidad.
¿Qué productos existen en el mercado de las copias de seguridad de PostgreSQL y qué pueden aportar?
PostgreSQL es un sistema de gestión de bases de datos increíblemente popular (de hecho, Stack Overflow lo clasificó en segundo lugar por delante de Microsoft SQL Server, Mongo y Oracle).
Debido a sus capacidades y a su creciente uso, varias empresas ofrecen este sistema como parte de su paquete de servicios. Algunas de ellas son:
- Veeam: Esta sencilla y cómoda herramienta gestiona la recuperación de desastres y el almacenamiento de datos de forma eficaz. Además, permite a los usuarios crear diferentes estrategias en función de los distintos trabajos. Sin embargo, los clientes han informado de largos tiempos de respuesta por parte del equipo de soporte.
- Dell Technologies: Puede utilizar su central de protección de datos como un cuadro de mando consolidado para la salud general de todas sus copias de seguridad con Networker y Avamar. El producto, sin embargo, se considera ligeramente anticuado y no ha evolucionado mucho en los últimos años.
- Commvault Backup and Recovery: Commvault le permite restaurar los datos a través de una consola de gestión controlada centralmente, lo que elimina la necesidad de que los administradores trabajen sobre el terreno. Su función «Edge Drive» también permite a los usuarios utilizar el sistema como una nube privada. Algunos clientes, sin embargo, han informado de graves problemas con la infraestructura subyacente. Por ejemplo, un corte de electricidad provoca la corrupción de las bases de datos de deduplicación.
- Percona PostgreSQL distribution: Percona ofrece una colección de herramientas para ayudarle a gestionar su sistema de base de datos PostgreSQL, instalando PostgreSQL y complementándolo con extensiones para resolver tareas prácticas esenciales y permitir que los programas cliente envíen y reciban consultas hacia y desde el servidor backend PostgreSQL.
- Veritas: Veritas es una herramienta de protección de datos empresariales que se ocupa de los sistemas heredados y le permite ampliar sus procesos de automatización, gobierno y gestión existentes a las bases de datos EDB Postgres Advanced Server y PostgreSQL.
- MicroFocus: MicroFocus es uno de los mayores proveedores de software empresarial del mundo y ofrece varias opciones de copia de seguridad para SQL Server, Oracle y PostgreSQL. También pueden hacer recomendaciones para realizar copias de seguridad de las bases de datos utilizadas por las configuraciones de los servidores.
- Cohesity: Cohesity simplifica y agiliza la gestión de datos en bases de datos distribuidas y relacionales. Esta opción es la que suelen elegir las empresas con grandes volúmenes de datos en expansión. Cohesity utiliza una función de adaptador remoto para realizar copias de seguridad de las bases de datos PostgreSQL y de los registros WAL.
- Rubrik: Rubrik proporciona protección contra los hackers y puede ayudar a las empresas a recuperarse rápidamente de los ataques. La plataforma es compatible con el conocimiento de aplicaciones para Oracle, SAP HANA, PostgreSQL, Microsoft SQL Server, MySQL y NoSQL.
Capacidades de Bacula Enterprise en la copia de seguridad y restauración de Postgres
Bacula es una solución de copia de seguridad de datos para empresas basada en la suscripción que ayuda a los centros de datos a manejar un gran volumen de datos a un coste muy bajo. Los clientes la han calificado constantemente como una solución de copia de seguridad de nivel empresarial extremadamente personalizable, con un sólido rendimiento y una excelente escalabilidad.
Bacula ofrece varias ventajas sobre sus competidores: Puede trabajar con entornos físicos, virtuales, de contenedores y en la nube, instantáneas, deduplicación avanzada, restauraciones y verificación de datos, todo en una sola plataforma. Puede utilizar fácilmente PostgreSQL con Bacula Enterprise.
Puede elegir entre dos técnicas principales para hacer copias de seguridad de su base de datos Postgres con Bacula Enterprise: PITR (point-in-time recovery) o Dump. La configuración del plugin es sencilla.
En primer lugar, especificará la directiva Plugin Directory en el recurso FileDaemon del archivo bacula-fd.conf.
Para configurar PITR, tendrá que habilitar el archivo WAL para utilizar la función de recuperación puntual de PostgreSQL. La configuración varía ligeramente dependiendo de la versión de su clúster (tendrá que configurar el archive_command y el archive_mode, o el archive_command, wal_level y el archive_mode). También debe habilitar la opción Accurate en su recurso Job porque el complemento utiliza la información del modo Accurate para gestionar las copias de seguridad diferenciales.
El plugin puede realizar las siguientes acciones en modo PITR:
- Copia de seguridad completa: realiza una copia de seguridad de todo el directorio de datos y de todos los archivos WAL.
- Copia de seguridad incremental: Fuerza el cambio del WAL actual y hace una copia de seguridad de todos los archivos WAL que se generaron desde la última copia de seguridad.
- Copia de seguridad diferencial: Realiza una copia de seguridad de los archivos de datos que cambiaron desde la última copia de seguridad completa y de los archivos WAL generados desde la última copia de seguridad.
No podrá realizar copias de seguridad incrementales o diferenciales cuando utilice el modo de volcado, pero el complemento detectará todas las bases de datos de su servidor.
También puede restaurar usuarios y roles en su cluster PostgreSQL (sólo tiene que seleccionar el archivo roles.sql), una sola base de datos (seleccione el directorio de la base de datos en el comando de restauración, que debe contener el archivo de datos y el script de creación de la base de datos), así como volcar archivos a un directorio, restaurar una sola tabla o un cluster completo utilizando PITR. En este caso, necesitará:
- Detenga el servidor si está en funcionamiento.
- Copie todo el directorio de datos del clúster y cualquier tablespace a una ubicación temporal (como precaución).
- Limpie todos los archivos y subdirectorios existentes.
- Restaure los archivos de la base de datos desde su volcado de copia de seguridad.
- Elimine los archivos presentes en pg_xlog, copie el archivo de segmento WAL no archivado en el archivo.
- Edite el archivo de comandos de recuperación en el directorio de datos del cluster y renómbrelo como recovery.conf.
- Inicie el servidor.
Bacula utiliza un servicio de conexión que permite asociar los parámetros de PostgreSQL a un único nombre de servicio, que puede ser especificado por una conexión PostgreSQL y su configuración asociada. Puede probar el acceso a la base de datos utilizando el comando estimar para asegurarse de que el plugin está bien configurado.
El plugin de PostgreSQL está disponible como paquete de Bacula Enterprise para todas las plataformas compatibles y es compatible con las versiones 8.4, 9.0, 9.1, 9.2, 9.3, 9.4 y 9.5 de PostgreSQL. Sólo tiene que instalarlo en el cliente donde reside su clúster PostgreSQL.
Con Bacula, puede hacer copias de seguridad y restaurar bases de datos PostgreSQL rápidamente y sin necesidad de complejos scripts. El software se encarga de toda la información esencial, a la vez que admite técnicas de copia de seguridad y restauración de punto en el tiempo (o PITR), incluyendo la copia de seguridad incremental de la base de datos PostgreSQL y la copia de seguridad diferencial de la base de datos PostgreSQL.
Empezar a utilizar Bacula Enterprise es fácil; sólo tiene que rellenar el formulario y descargar la prueba. Bacula tiene unos niveles de seguridad muy elevados, no tiene coste de volumen de datos, un modelo de licencia de suscripción y no hay dependencia de ningún proveedor. La empresa no sólo incluye el mejor software de copia de seguridad de datos, sino también un soporte, parches y actualizaciones.