
Las bases de datos distribuidas o los clústeres generalmente constan de múltiples tipos de nodos y nodos, y no siempre es fácil entender cómo se unen todos estos. Por ejemplo, uno podría tener una configuración de replicación con maestros intermedios y el tráfico de replicación siguiendo una ruta determinada. Agregue algunos balanceadores de carga, hosts con múltiples direcciones IP, banderas de solo lectura y retraso esclavo, y se encontrará con un desafío para la mente.
Sin embargo, una imagen vale más que mil palabras. Eso es exactamente lo que ofrece la nueva Vista de topología de ClusterControl. Muestra todos los diferentes nodos que forman parte de su clúster de base de datos (ya sean nodos de base de datos, balanceadores de carga o árbitros), así como las conexiones entre ellos. ClusterControl descubre los nodos, las conexiones y sus estados. Dado que ClusterControl monitorea continuamente los nodos y mantiene información de estado, cualquier cambio en la topología se refleja en la interfaz web. Si un nodo ha fallado, se mostrará como fuera de línea.
Desde la vista de topología, puede administrar los nodos, cambiar maestros arrastrando y soltando el objeto en el maestro deseado, reiniciar nodos y sincronizar datos. También puede detectar problemas con mucha facilidad, ya que cada objeto presenta un resumen rápido de su estado. ClusterControl realiza algunos controles adicionales para las acciones que desea realizar. Las comprobaciones predefinidas no permiten ejecutar tareas que puedan provocar la pérdida de datos.
Hay diferentes tipos de topologías, mostraremos algunas de ellas y veremos cómo funcionan.
Clúster Galera

Aquí tenemos una topología básica de Galera Cluster con 3 nodos.
En esta pantalla podemos ver los 3 nodos funcionando correctamente e información básica como el estado y el último commit.
También podemos observar que galera1 aparece como maestro, ya que está generando binlogs.
Si expandimos uno de los nodos, podemos ver información de estado adicional.

En la primera vemos información relacionada con el tráfico de Galera.

En la segunda subpantalla, podemos ver detalles sobre la replicación regular de MySQL.

En el tercero, tenemos detalles sobre el servidor, como el tiempo de actividad y la versión.
También tenemos acciones que podemos realizar en los nodos.

Si hacemos clic en el icono derecho, podemos ver las acciones disponibles:
- Consola SSH:Nos permite acceder a una consola ssh en el nodo.
- Modo de mantenimiento programado:le permite establecer una ventana de mantenimiento para el nodo.
- Reboot Host:podemos reiniciar el host desde aquí.
- Reiniciar nodo:podemos reiniciar la base de datos.
- Resync Node:Nos permite realizar una resincronización del nodo.
- Clúster Bootstrap:Al seleccionar esta opción, podemos realizar un bootstrap del clúster seleccionando el nodo correspondiente.
- Detener nodo:podemos detener la base de datos.
- Unregister Node:con esta acción, eliminamos el nodo del clúster.
Replicación MySQL

En esta pantalla podemos ver una topología de replicación MySQL con 1 maestro y 3 esclavos.
Tenemos información como el estado de las réplicas y el maestro, qué nodos se pueden escribir y la posición de la réplica.
Si ampliamos cada nodo, podemos obtener información más detallada.


En la primera subpantalla, podemos ver los detalles de la replicación. Tanto el amo como el esclavo.

En la segunda pantalla secundaria, vemos los detalles del servidor, como la versión y el tiempo de actividad.
Tenemos diferentes acciones que podemos realizar en los nodos.

Si hacemos clic en el icono derecho, podemos ver las acciones disponibles:
- Consola SSH:Nos permite acceder a una consola ssh dentro del nodo.
- Modo de mantenimiento programado:le permite establecer una ventana de mantenimiento para el nodo.
- Reboot Host:podemos reiniciar el host desde aquí.
- Reiniciar nodo:podemos reiniciar la base de datos.
- Disable Readonly:Con esta opción habilitamos la escritura en la réplica.
- Promover esclavo:permite promover un esclavo a maestro.
- Reconstruir esclavo de replicación:Seleccionando esta opción reconstruimos la réplica seleccionando un maestro.
- Cambiar maestro de replicación:le permite cambiar el maestro de la replicación.
- Iniciar esclavo:inicia la instancia.
- Detener nodo:podemos detener la instancia.
- Unregister Node:Con esta acción eliminamos el nodo del clúster.
Las opciones pueden variar según el rol del nodo.

También puede, seleccionando un nodo y arrastrándolo a otro nodo, seleccione una de las siguientes opciones:

Puede reconstruir la réplica a partir de ese nuevo nodo o simplemente cambiar el maestro y continuar con la replicación.
Al confirmar los cambios, tendremos una nueva vista de topología:

Aquí podemos ver que tenemos nuestro maestro, con dos réplicas, y una de esas réplicas funciona como un maestro intermedio, con un esclavo que se replica desde él.
PostgreSQL

Aquí tenemos una topología para PostgreSQL, con 1 maestro y 2 esclavos.
Podemos observar el rol de cada uno, qué nodos permiten escribir y el estado de replicación.

Si ampliamos la información de los nodos, podemos ver detalles de versión y tiempo de actividad.

También tenemos diferentes acciones que se pueden realizar en los nodos:
- Consola SSH:Nos permite acceder a una consola ssh dentro del nodo.
- Modo de mantenimiento programado:le permite establecer una ventana de mantenimiento para el nodo.
- Reboot Host:podemos reiniciar el host desde aquí.
- Reiniciar nodo:podemos reiniciar la base de datos.
- Promocionar Esclavo:Nos permite promover un maestro esclavo.
- Reconstruir esclavo de replicación:esta opción permite reconstruir una réplica a partir de un maestro.
- Detener nodo:podemos detener la base de datos.
- Unregister Node:Con esta acción eliminamos el nodo del clúster.
Las opciones pueden cambiar según el rol de cada nodo.
Si queremos modificar nuestro maestro, podemos hacerlo simplemente seleccionando Promover Esclavo en las acciones del nodo que vimos anteriormente.
Después de unos segundos, podemos ver nuestra nueva topología, con el nuevo maestro que seleccionamos.

Para reconstruir una réplica, simplemente podemos seleccionar el nodo que queremos modificar y soltarlo en el maestro.

De esta manera, puede reconstruir una réplica rápida y fácilmente.
MongoDB

Esta es la topología para un MongoDB ReplicaSet con 1 nodo principal y 2 nodos secundarios.
Podemos observar información básica como conexiones y bloqueos.
Al expandir la información del nodo, podemos ver dos subpantallas.

En la primera vemos la prioridad y si está oculta o no.

En el segundo podemos ver los datos del servidor, como la versión y el tiempo de actividad.

Tenemos diferentes acciones para realizar en cada nodo:
- Consola SSH:Nos permite acceder a una consola ssh dentro del nodo.
- Modo de mantenimiento programado:le permite establecer una ventana de mantenimiento para el nodo.
- Reboot Host:podemos reiniciar el host desde aquí.
- Reiniciar nodo:podemos reiniciar la base de datos.
- Congelar nodo:podemos poner el nodo en modo congelado durante X tiempo.
- Detener nodo:podemos detener la base de datos.
- Unregister Node:Con esta acción eliminamos el nodo del clúster.
Las opciones pueden cambiar según el rol de cada nodo.
Generales
Independientemente del motor que utilicemos, si perdemos el acceso a algún nodo, podemos verlo fácilmente y configurar alertas sobre los eventos. Veamos un ejemplo con Galera Cluster:

De esta forma, podemos identificar rápidamente el nodo inaccesible y tomar las medidas necesarias.
También podemos tener en nuestra topología balanceadores de carga con keepalive configurado:

Podemos ver los nodos de la base de datos y los balanceadores de carga (por ejemplo, ProxySQL).
Para concluir, la Vista de topología puede ser bastante útil para visualizar rápidamente cómo se replica nuestro clúster.
Puede probar esta y muchas otras funciones con la versión de prueba gratuita.