sql >> Base de Datos >  >> RDS >> MariaDB

Comparación del servidor MariaDB con el clúster MariaDB

MariaDB Server y MariaDB Cluster son productos de código abierto impulsados ​​por MariaDB Corporation. MariaDB Server es una de las bases de datos relacionales más populares, originalmente se bifurcó del servidor MySQL.

MariaDB Cluster es una solución de alta disponibilidad creada a partir de MariaDB Server, que utiliza una biblioteca wsrep de Galera Cluster para sincronizar los datos entre nodos. El método de replicación de Galera es sincrónico (o "prácticamente sincrónico"), lo que garantiza que los datos sean los mismos en todos los nodos.

El servidor MariaDB también puede tener una alta disponibilidad a través de la replicación estándar. La replicación puede ser asincrónica o semisíncrona.

Entonces, ¿en qué se diferencia el servidor MariaDB con replicación estándar del clúster MariaDB con clúster Galera? En este blog, compararemos esos dos. Usaremos ClusterControl para ilustrar algunas de las diferencias.

Arquitectura del servidor MariaDB

La arquitectura de MariaDB Server puede ser una instancia única/independiente o una replicación maestro/esclavo como se muestra en el diagrama a continuación.

La arquitectura de instancia única del servidor MariaDB representa un solo nodo. El inconveniente de tener una sola instancia es un único punto de falla para la base de datos. Si su base de datos falla y no vuelve a funcionar, no tiene ningún mecanismo de conmutación por error y necesita hacer una restauración para recuperar su base de datos desde la última copia de seguridad.

La arquitectura maestro/esclavo es una configuración distribuida, con el maestro actuando como escritor y los esclavos como lectores. Con un balanceador de carga como Maxscale o ProxySQL, puede dividir el tráfico de la base de datos para que las escrituras se envíen al maestro y las lecturas a los esclavos. Tener una configuración de replicación eliminará un punto único de falla para la base de datos, pero debe poder realizar la conmutación por error automáticamente si falla el maestro. De lo contrario, las aplicaciones no podrán escribir en la base de datos y se verán afectadas. ClusterControl se puede configurar para proporcionar conmutación por error y recuperación automáticas para la replicación de MariaDB.

Arquitectura de clúster MariaDB

MariaDB Cluster es una solución de alta disponibilidad que consta de MariaDB Server y Galera Replication, como se muestra en el siguiente diagrama de arquitectura:

Es una replicación sincrónica ("virtualmente sincrónica"), todos los nodos son escribibles. La replicación síncrona garantiza que si los cambios ocurren en uno de los nodos de galera, estarán disponibles en todos los demás nodos del clúster antes de confirmarse.

La gran diferencia es que todos los nodos son iguales desde el punto de vista de la aplicación, pueden enviar tráfico de escritura a cualquiera de las instancias de la base de datos. Además, todos los nodos deben tener exactamente los mismos datos para que no haya pérdida de datos en caso de falla del nodo.

Despliegue de MariaDB

Tanto la replicación de MariaDB como el clúster de MariaDB se pueden implementar a través de ClusterControl. Cuando implementa el servidor MariaDB, debe comenzar eligiendo la replicación de MySQL, mientras que para el clúster de MariaDB, debe elegir MySQL Galera.

Para MariaDB Server, puede implementar una instancia de MariaDB de un solo nodo o puede configurar replicación maestra/esclava y bidireccional. La cantidad mínima de nodos en una configuración de replicación es dos, necesita un maestro y al menos un esclavo. Simplemente complete la dirección IP para el maestro y agregue esclavos (si desea tener una arquitectura maestro/esclavo). Puede usar el campo Agregar segundo maestro si desea configurar la replicación bidireccional. Se aprovisionará una configuración maestro-maestro con replicación bidireccional, pero uno de los nodos se configurará como de solo lectura. El motivo es minimizar el riesgo de deriva de datos y "transacciones erráticas".

Para MariaDB Cluster, necesita al menos 3 hosts para que los nodos de la base de datos de destino estar instalado. Esto se debe a que tiene que ser capaz de manejar la partición de la red o el síndrome de "cerebro dividido". Solo necesita completar la dirección IP cuando agregue un nodo al definir la configuración de los servidores MySQL.

No olvide elegir MariaDB como proveedor de base de datos, versión de base de datos que desea instalar y complete la contraseña de root. También puede cambiar el directorio de datos no predeterminado a cualquier otra ruta.

Después de configurar todas las cosas, simplemente implemente el clúster. Activará un nuevo trabajo para la implementación de la base de datos.

Tenga en cuenta que también es posible tener 2 nodos Galera y un árbitro Galera, también conocido como garbd, en un tercer host.

Servidor MariaDB y supervisión de clúster

El monitoreo de la base de datos es una parte crítica de la base de datos, puede conocer el estado actual de salud de la base de datos. La diferencia entre la supervisión de MariaDB Server y MariaDB Cluster es Galera Metrics para la sincronización.

En el servidor MariaDB, puede verificar el estado actual de su base de datos a través de MySQL Metrics; MySQL Server:general, MySQL Server:cachés, MySQL InnoDB Metrics, que también se puede ver en MariaDB Cluster, como se muestra a continuación:

Servidor MySQL - General le brinda información sobre el estado actual de la proporción de aciertos del grupo de búfer de InnoDB, la conexión a la base de datos, las consultas, el bloqueo y la utilización de la memoria de la base de datos.

Servidor MySQL - Cachés, hay mucha información provista en Cachés. Principalmente relacionado con el almacenamiento en caché en la base de datos, por ejemplo:tamaño del grupo de búfer, instancia del grupo de búfer. También hay información sobre el uso de la memoria caché de la tabla, la proporción de aciertos, los aciertos y errores de la memoria caché. También puede encontrar información sobre el uso de la caché de subprocesos y la proporción de aciertos.

Servidor MySQL - InnoDB Metrics muestra métricas relacionadas con el almacenamiento de InnoDB, por ejemplo:actividad de almacenamiento intermedio, operaciones de fila de InnoDB, tamaño de archivo de registro de InnoDB, lectura/escritura de datos de InnoDB.

En MariaDB Server, si configura la replicación maestro/esclavo, hay una subcategoría de métricas en MySQL Replication - Master. Hay información relacionada con el archivo de registro binario maestro, la posición del registro binario maestro y la frecuencia de creación de registros binarios.

MariaDB Server tiene mucha información relacionada con la base de datos, estos también están disponibles para MariaDB Cluster. La diferencia es que hay dos paneles para MariaDB Cluster:Galera Overview y Galera Server Charts.

Resumen de Galera brinda información relacionada con el estado actual de la replicación de Galera. Hay información como el tamaño del clúster, el control de flujo enviado, el control de flujo recibido, el control de flujo en pausa.

Gráficos del servidor de Galera tiene información sobre el nombre del clúster, el estado del clúster, el tamaño y el tamaño de caché global.

Conclusión

MariaDB Server con replicación estándar y MariaDB Cluster no son productos realmente diferentes en términos de servicio de base de datos, pero tienen características diferentes según sus requisitos de disponibilidad y escalabilidad. ClusterControl admite MariaDB Server con replicación estándar e implementaciones de MariaDB Cluster, así que pruebe ambas configuraciones y háganos saber su opinión.