sql >> Base de Datos >  >> RDS >> Mysql

Automatice la implementación de su clúster de MySQL o Postgres desde la copia de seguridad

ClusterControl 1.7.1 presenta una nueva función llamada Crear clúster a partir de una copia de seguridad, que le permite implementar un nuevo clúster basado en MySQL o Postgres y restaurar datos en él desde una copia de seguridad. Esta publicación de blog muestra cómo funciona esta nueva característica y cómo este tipo de automatización puede brindar mejoras a las operaciones de su infraestructura.

Presentamos:Crear un clúster a partir de una copia de seguridad

La gestión de copias de seguridad es la característica más querida por nuestros usuarios, y acabamos de llevarla al siguiente nivel. Esta nueva funcionalidad parece simple:ClusterControl 1.7.1 puede implementar un nuevo clúster a partir de una copia de seguridad existente. Sin embargo, existen varios procedimientos y verificaciones para implementar un clúster de grado de producción directamente desde una copia de seguridad. La restauración en sí viene con sus propios desafíos, tales como:

  • Consecuencias de la restauración total o parcial
  • Copia de seguridad base y su orden de copias de seguridad incrementales (para copia de seguridad incremental)
  • Descifrado de copia de seguridad (si está cifrado)
  • Opciones de herramientas de restauración
  • Descompresión (si está comprimido)
  • Transmisión de respaldo desde la fuente al servidor de destino
  • Utilización del espacio en disco durante y después de la restauración
  • Informes de progreso de la restauración

Combine lo anterior con la complejidad y la repetición de las tareas de implementación de clústeres de bases de datos, puede ahorrar tiempo y reducir el riesgo en la ejecución de procedimientos propensos a errores. La parte más difícil desde la perspectiva del usuario es elegir desde qué copia de seguridad restaurar. ClusterControl se encargará de todo el trabajo pesado detrás de la escena e informará el resultado final una vez que finalice.

Los pasos son básicamente simples:

  1. Configure SSH sin contraseña desde el nodo ClusterControl a los nuevos servidores.
  2. Elija una copia de seguridad lógica de la lista de copias de seguridad o cree una en Copias de seguridad -> Crear copia de seguridad .
  3. Haga clic en Restaurar -> Crear clúster desde la copia de seguridad y siga el asistente de implementación.

Esta función está diseñada específicamente para MySQL Galera Cluster y PostgreSQL en este momento. Esto es lo que vería en la interfaz de usuario después de hacer clic en "Restaurar" en una copia de seguridad existente:

La opción inferior es lo que estamos buscando. A continuación, está el cuadro de diálogo de resumen sobre la copia de seguridad elegida antes de la configuración de implementación:

A continuación, se mostrará el mismo asistente de implementación de clúster de base de datos para el clúster respectivo (MySQL Galera Cluster o PostgreSQL) para configurar un nuevo clúster:

Tenga en cuenta que debe especificar el mismo nombre de usuario y contraseña raíz/administrador de la base de datos que tiene en la copia de seguridad. De lo contrario, la implementación fallaría a mitad de camino al iniciar el primer nodo. En general, los procedimientos de restauración e implementación sucederán en el siguiente orden:

  1. Instale los softwares y dependencias necesarios en todos los nodos de la base de datos.
  2. Inicie el primer nodo.
  3. Transmita y restaure la copia de seguridad en el primer nodo (con indicador de reinicio automático).
  4. Configure y agregue el resto de los nodos.

Se mostrará un nuevo clúster de base de datos en el panel de clústeres de ClusterControl una vez que se complete el trabajo.

¿Qué puedes ganar con ello?

Hay varias cosas de las que podría beneficiarse con esta función, como se explica en las siguientes secciones.

Pruebe su conjunto de datos en varias condiciones

A veces, es posible que se pregunte si la nueva versión de la base de datos funcionaría o funcionaría para la carga de trabajo de su base de datos y probarla es la única forma de saberlo. Aquí es donde esta característica es útil. Le permite realizar pruebas y puntos de referencia en muchas variables involucradas que afectarían la estabilidad o el rendimiento de la base de datos, por ejemplo, el hardware subyacente, la versión del software, el proveedor y la base de datos o las cargas de trabajo de la aplicación.

Para un ejemplo simple, hay una gran mejora en la ejecución de DDL entre MySQL 5.6 y MySQL 5.7. La siguiente operación DROP en una tabla de 10 millones de filas lo demuestra todo:

mysql-5.7> ALTER TABLE sbtest1 DROP COLUMN xx;
Query OK, 0 rows affected (1 min 58.12 sec)
mysql-5.6> ALTER TABLE sbtest1 DROP COLUMN xx;
Query OK, 0 rows affected (2 min 23.74 sec)

Tener otro clúster con el que comparar nos permite medir la mejora y justificar una migración.

Migración de base de datos con respaldo lógico

Copia de seguridad lógica como mysqldump y pg_dumpall es la forma más segura de actualizar, degradar o migrar sus datos de una versión o proveedor a otro. Todas las copias de seguridad lógicas se pueden utilizar para realizar la migración de la base de datos. Los pasos de actualización de la base de datos son básicamente simples:

  1. Cree (o programe) una copia de seguridad lógica:mysqldump para MySQL o pg_dumpall para PostgreSQL
  2. Configure SSH sin contraseña desde el nodo ClusterControl a los nuevos servidores.
  3. Elija una copia de seguridad lógica creada de la lista de copias de seguridad.
  4. Haga clic en Restaurar -> Crear clúster desde la copia de seguridad y siga el asistente de implementación.
  5. Verifique la restauración de datos en el nuevo clúster.
  6. Apunte su aplicación al nuevo clúster.

Tiempo de recuperación total del clúster más rápido

Imagine una falla catastrófica que impida que su clúster se ejecute, como por ejemplo una falla de almacenamiento centralizado que afectó a todas las máquinas virtuales que se conectaron a él, podría obtener un clúster de reemplazo casi de inmediato (siempre que los archivos de respaldo se almacenen fuera de los nodos de la base de datos fallidos). , Declarando lo obvio). Esta función se puede automatizar a través del cliente s9s, donde puede activar un trabajo a través de la interfaz de línea de comandos, por ejemplo:

$ s9s cluster \
--create \
--cluster-type=postgresql \
--nodes="192.168.0.101?master;192.168.0.102?slave;192.168.0.103?slave" \
--provider-version=11 \
--db-admin=postgres \
--db-admin-passwd='s3cr3tP455' \
--os-user=root \
--os-key-file=/root/.ssh/id_rsa \
--cluster-name="PostgreSQL 9.6 - Test"
--backup-id=214 \
--log

Una cosa a tener en cuenta al usar esta función es usar el mismo nombre de usuario y contraseña de administrador que los que están almacenados en la copia de seguridad. Además, el SSH sin contraseña para todos los nodos de la base de datos debe configurarse de antemano. De lo contrario, si prefiere configurarlo de forma interactiva, simplemente use la interfaz de interfaz de usuario web.

Escalamiento horizontal a través de la replicación asíncrona

Para MySQL Galera Cluster, el clúster recién creado tiene la posibilidad de escalarse a través de la replicación asíncrona de MySQL. Supongamos que ya restauramos un nuevo clúster en la oficina en función de la última copia de seguridad del clúster de producción en el centro de datos y nos gustaría que el clúster de la oficina siguiera replicando desde el clúster de producción, como se ilustra en el siguiente diagrama:

A continuación, puede configurar el enlace de replicación asincrónica de la siguiente manera:

  1. Elija un nodo en la producción y habilite el registro binario (si está deshabilitado). Vaya a Nodos -> elija un nodo -> Acciones de nodo -> Habilitar registro binario.

  2. Habilite el registro binario en todos los nodos para el clúster de oficina. Esta acción requiere un reinicio continuo que se realizará automáticamente si elige "Sí" en el menú desplegable "Nodo de reinicio automático":

    De lo contrario, puede realizar esta operación sin tiempo de inactividad usando Administrar -> Actualizar -> Reinicio continuo (o reiniciar manualmente un nodo a la vez).

  3. Cree un usuario de replicación en el clúster de producción mediante Administrar -> Esquemas y usuarios -> Usuarios -> Crear nuevo usuario:

  4. Luego, elija un nodo para replicar en el nodo maestro en el clúster de producción y configure el enlace de replicación:

    mysql> CHANGE MASTER master_host = 'prod-mysql1', master_user = 'slave', master_password = 'slavepassw0rd', master_auto_position = 1;
    mysql> START SLAVE;
  5. Verifique si la replicación se está ejecutando:

    mysql> SHOW SLAVE STATUS\G
    Asegúrese de que Slave_IO_Thread y Slave_SQL_thread informen 'Sí'. El clúster de la oficina debería comenzar a ponerse al día con el nodo maestro si se está quedando atrás.

¡Eso es todo por ahora amigos!