sql >> Base de Datos >  >> NoSQL >> MongoDB

Protección de sus datos con ClusterControl

En las últimas cuatro publicaciones de la serie de blogs, cubrimos la implementación de clústeres/replicación (MySQL/Galera, MySQL Replication, MongoDB y PostgreSQL), administración y monitoreo de sus bases de datos y clústeres existentes, monitoreo de rendimiento y estado y en la última publicación, cómo hacer que su configuración esté altamente disponible a través de HAProxy y ProxySQL.

Entonces, ahora que tiene sus bases de datos funcionando y altamente disponibles, ¿cómo se asegura de tener copias de seguridad de sus datos?

Puede usar las copias de seguridad para varias cosas:recuperación ante desastres, para proporcionar datos de producción para probarlos con respecto al desarrollo o incluso para aprovisionar un nodo esclavo. Este último caso ya está cubierto por ClusterControl. Cuando agrega un nuevo nodo (réplica) a su configuración de replicación, ClusterControl hará una copia de seguridad/instantánea del nodo maestro y la usará para construir la réplica. También puede usar una copia de seguridad existente para organizar la réplica, en caso de que desee evitar esa carga adicional en el maestro. Después de extraer y preparar la copia de seguridad y de que la base de datos esté en funcionamiento, ClusterControl configurará automáticamente la replicación.

Crear una copia de seguridad instantánea

En esencia, crear una copia de seguridad es lo mismo para Galera, la replicación de MySQL, PostgreSQL y MongoDB. Puede encontrar la sección de copia de seguridad en ClusterControl> Copia de seguridad y, de forma predeterminada, verá una lista de copias de seguridad creadas del clúster (si corresponde). De lo contrario, verá un marcador de posición para crear una copia de seguridad:

Desde aquí puede hacer clic en el botón "Crear copia de seguridad" para hacer una copia de seguridad instantánea o programar una nueva copia de seguridad:

Todas las copias de seguridad creadas también se pueden cargar en la nube al alternar "Cargar copia de seguridad en la nube", siempre que proporcione credenciales de nube que funcionen. De manera predeterminada, se eliminarán todas las copias de seguridad que tengan más de 31 días (configurable a través de la configuración de Retención de copias de seguridad) o puede optar por conservarlas para siempre o definir un período personalizado.

"Crear copia de seguridad" y "Programar copia de seguridad" comparten opciones similares excepto la parte de programación y las opciones de copia de seguridad incremental para esta última. Por lo tanto, vamos a analizar la función Crear copia de seguridad (también conocida como copia de seguridad instantánea) con más profundidad.

Como todas estas bases de datos tienen diferentes herramientas de respaldo, obviamente hay alguna diferencia en las opciones que puede elegir. Por ejemplo, con MySQL puede elegir entre mysqldump y xtrabackup (completo e incremental). Para MongoDB, ClusterControl admite mongodump y mongodb-consistent-backup (beta), mientras que PostgreSQL, pg_dump y pg_basebackup son compatibles. Si tiene dudas sobre cuál elegir para MySQL, consulte este blog sobre las diferencias y casos de uso para mysqldump y xtrabackup.

Copia de seguridad de MySQL y Galera

Como se mencionó en el párrafo anterior, puede realizar copias de seguridad de MySQL usando mysqldump o xtrabackup (completa o incremental). En el asistente "Crear copia de seguridad", puede elegir en qué host desea ejecutar la copia de seguridad, la ubicación donde desea almacenar los archivos de copia de seguridad y su directorio y esquemas específicos (xtrabackup) o esquemas y tablas (mysqldump).

Si el nodo del que está realizando la copia de seguridad está recibiendo tráfico (de producción) y tiene miedo de que las escrituras adicionales en el disco se vuelvan intrusivas, se recomienda enviar las copias de seguridad al host de ClusterControl seleccionando la opción "Almacenar en el controlador". Esto hará que la copia de seguridad transmita los archivos a través de la red al host de ClusterControl y debe asegurarse de que haya suficiente espacio disponible en este nodo y que el puerto de transmisión esté abierto en el host de ClusterControl.

También hay varias otras opciones si desea utilizar la compresión y el nivel de compresión. Cuanto mayor sea el nivel de compresión, menor será el tamaño de la copia de seguridad. Sin embargo, requiere un mayor uso de la CPU para el proceso de compresión y descompresión.

Si elige xtrabackup como el método para la copia de seguridad, abriría opciones adicionales:desincronización, bloqueos de copia de seguridad, compresión y xtrabackup subprocesos paralelos/gzip. La opción de desincronización solo se aplica para desincronizar un nodo de un clúster de Galera. Los bloqueos de copia de seguridad utilizan un nuevo tipo de bloqueo MDL para bloquear actualizaciones de tablas no transaccionales y declaraciones DDL para todas las tablas, lo que es más eficiente para la carga de trabajo específica de InnoDB. Si está ejecutando Galera Cluster, se recomienda habilitar esta opción.

Después de programar una copia de seguridad instantánea, puede realizar un seguimiento del progreso del trabajo de copia de seguridad en Actividad> Trabajos :

Una vez que haya terminado, debería poder ver una nueva entrada en la lista de copias de seguridad.

Copia de seguridad de PostgreSQL

Similar a las copias de seguridad instantáneas de MySQL, puede ejecutar una copia de seguridad en su base de datos de Postgres. Con las copias de seguridad de Postgres, se admiten dos métodos de copia de seguridad:pg_dumpall o pg_basebackup. Tenga en cuenta que ClusterControl siempre realizará una copia de seguridad completa independientemente del método de copia de seguridad elegido.

Hemos cubierto este aspecto en detalles en Conviértase en un administrador de bases de datos de PostgreSQL:copias de seguridad lógicas y físicas de PostgreSQL.

Copia de seguridad de MongoDB

Para MongoDB, ClusterControl es compatible con el estándar mongodump y mongodb-consistent-backup desarrollado por Percona. Este último todavía se encuentra en la versión beta que proporciona copias de seguridad de MongoDB en un momento dado y coherentes con el clúster, adecuadas para configuraciones de clúster fragmentado. Dado que el clúster fragmentado de MongoDB consta de varios conjuntos de réplicas, un conjunto de réplicas de configuración y servidores fragmentados, es muy difícil realizar una copia de seguridad coherente utilizando solo mongodump.

Tenga en cuenta que en el asistente, no tiene que elegir un nodo de base de datos para realizar una copia de seguridad. ClusterControl seleccionará automáticamente la réplica secundaria más saludable como el nodo de respaldo. De lo contrario, se seleccionará el principal. Cuando se ejecuta la copia de seguridad, el nodo de copia de seguridad seleccionado se bloqueará hasta que se complete el proceso de copia de seguridad.

Programación de copias de seguridad

Ahora que hemos jugado con la creación de copias de seguridad instantáneas, ahora podemos ampliarlo programando las copias de seguridad.

La programación es muy fácil de hacer:puede seleccionar en qué días se debe realizar la copia de seguridad y a qué hora debe ejecutarse.

Para xtrabackup hay una función adicional:copias de seguridad incrementales. Una copia de seguridad incremental solo respaldará los datos que cambiaron desde la última copia de seguridad. Por supuesto, las copias de seguridad incrementales son inútiles si no hay una copia de seguridad completa como punto de partida. Entre dos copias de seguridad completas, puede tener tantas copias de seguridad incrementales como desee. Pero restaurarlos llevará más tiempo.

Una vez programados, los trabajos deberían estar visibles en la pestaña "Copia de seguridad programada" y puede editarlos haciendo clic en el botón "Editar". Al igual que con las copias de seguridad instantáneas, estos trabajos programarán la creación de una copia de seguridad y podrá realizar un seguimiento del progreso a través de la pestaña Actividad.

Lista de respaldo

Puede encontrar la Lista de copia de seguridad en ClusterControl> Copia de seguridad y esto le dará una descripción general a nivel de clúster de todas las copias de seguridad realizadas. Al hacer clic en cada entrada, se expandirá la fila y se expondrá más información sobre la copia de seguridad:

Cada copia de seguridad va acompañada de un registro de copia de seguridad cuando ClusterControl ejecutó el trabajo, que está disponible en el botón "Más acciones".

Copia de seguridad externa en la nube

Dado que ahora tenemos muchas copias de seguridad almacenadas en los hosts de la base de datos o en el host de ClusterControl, también queremos asegurarnos de que no se pierdan en caso de que nos enfrentemos a una interrupción total de la infraestructura. (por ejemplo, DC en llamas o inundado) Por lo tanto, ClusterControl le permite almacenar o copiar sus copias de seguridad fuera del sitio en la nube. Las plataformas en la nube admitidas son Amazon S3, Google Cloud Storage y Azure Cloud Storage.

El proceso de carga ocurre justo después de que se crea correctamente la copia de seguridad (si activa "Cargar copia de seguridad en la nube") o puede hacer clic manualmente en el botón del icono de la nube de la lista de copias de seguridad:

Elija la credencial de la nube y especifique la ubicación de la copia de seguridad en consecuencia:

Restaurar y/o Verificar Respaldo

Desde la interfaz de la lista de copias de seguridad, puede restaurar directamente una copia de seguridad en un host del clúster haciendo clic en el botón "Restaurar" para la copia de seguridad en particular o haciendo clic en el botón "Restaurar copia de seguridad":

Una buena característica es que puede restaurar un nodo o un clúster utilizando las copias de seguridad completas e incrementales, ya que realizará un seguimiento de la última copia de seguridad completa realizada e iniciará la copia de seguridad incremental desde allí. Luego agrupará una copia de seguridad completa junto con todas las copias de seguridad incrementales hasta la próxima copia de seguridad completa. Esto le permite restaurar a partir de la copia de seguridad completa y aplicar las copias de seguridad incrementales encima.

ClusterControl admite la restauración en un nodo de base de datos existente o la restauración y verificación en un nuevo host independiente:

Estas dos opciones son bastante similares, excepto que la de verificación tiene opciones adicionales para la información del nuevo host. Si sigue el asistente de restauración, deberá especificar un nuevo host. Si está habilitado "Instalar software de base de datos", ClusterControl eliminará cualquier instalación de MySQL existente en el host de destino y reinstalará el software de base de datos con la misma versión que el servidor MySQL existente.

Una vez que se haya restaurado y verificado la copia de seguridad, recibirá una notificación sobre el estado de la restauración y el nodo se cerrará automáticamente.

Recuperación de un punto en el tiempo

Para MySQL, tanto xtrabackup como mysqldump se pueden usar para realizar una recuperación puntual y también para aprovisionar un nuevo esclavo de replicación para la replicación maestro-esclavo o Galera Cluster. Una copia de seguridad compatible con mysqldump PITR contiene un solo archivo de volcado, con información de GTID, archivo binlog y posición. Por lo tanto, solo el nodo de la base de datos que produce el registro binario tendrá disponible la opción "compatible con PITR":

Cuando se activa la opción compatible con PITR, los campos de la base de datos y la tabla aparecen atenuados, ya que ClusterControl siempre realizará una copia de seguridad completa de todas las bases de datos, eventos, disparadores y rutinas del servidor MySQL de destino.

Ahora restaurando la copia de seguridad. Si la copia de seguridad es compatible con PITR, se presentará una opción para realizar una Recuperación de un punto en el tiempo. Tendrá dos opciones para eso:"Basado en el tiempo" y "Basado en la posición". Para "Basado en el tiempo", puede simplemente pasar el día y la hora. Para "Basado en la posición", puede pasar la posición exacta a la que desea restaurar. Es una forma más precisa de restaurar, aunque es posible que necesite obtener la posición binlog utilizando la utilidad mysqlbinlog. Puede encontrar más detalles sobre la recuperación de un punto en el tiempo en este blog.

Cifrado de copia de seguridad

Universalmente, ClusterControl admite el cifrado de copias de seguridad para MySQL, MongoDB y PostgreSQL. Las copias de seguridad se cifran en reposo mediante el algoritmo AES-256 CBC. Se almacenará una clave generada automáticamente en el archivo de configuración del clúster en /etc/cmon.d/cmon_X.cnf (donde X es el ID del clúster):

$ sudo grep backup_encryption_key /etc/cmon.d/cmon_1.cnf
backup_encryption_key='JevKc23MUIsiWLf2gJWq/IQ1BssGSM9wdVLb+gRGUv0='

Si el destino de la copia de seguridad no es local, los archivos de copia de seguridad se transfieren en formato cifrado. Esta función complementa la copia de seguridad externa en la nube, donde no tenemos acceso total al sistema de almacenamiento subyacente.

Reflexiones finales

Le mostramos cómo obtener una copia de seguridad de sus datos y cómo almacenarlos de forma segura fuera del sitio. La recuperación es siempre una cosa diferente. ClusterControl puede recuperar automáticamente sus bases de datos de las copias de seguridad realizadas en el pasado que se almacenan en las instalaciones o se copian desde la nube.

Obviamente, hay más para proteger sus datos, especialmente en el lado de proteger sus conexiones. ¡Cubriremos esto en la próxima entrada del blog!