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

¿Qué es MariaDB TX? ¡Cómo administrar la nueva bifurcación MariaDB MySQL!

Es posible que haya oído hablar de MariaDB TX y se haya preguntado qué es.

¿Hay alguna diferencia entre él y MariaDB Server 10.3?

En esta publicación de blog, nos gustaría brindarle una descripción general de MariaDB TX y de qué se trata.

En resumen:MariaDB TX es una suscripción en la que MariaDB combina múltiples ofertas creando una base de datos transaccional con todas las funciones.

La base de datos utilizada en MariaDB TX es MariaDB Server 10.3, que también incluye Galera Cluster para replicación síncrona multimaestro. Para la capa de proxy, MariaDB TX utiliza MaxScale.

Centrémonos un poco en esas dos ofertas principales, repasando sus funciones.

Servidor MariaDB 10.3


Evolucionó hasta convertirse en una bifurcación de características completas, que implementa nuevas funcionalidades además de lo que implementa Oracle en el upstream. MariaDB 10.3 viene con una lista de características enfocadas en la empresa. MariaDB Server 10.3 ya no es un reemplazo directo para MySQL.

Compatibilidad con Oracle

MariaDB 10.3 viene con SQL_MODE=ORACLE, que mejora la compatibilidad de la sintaxis SQL utilizada en MariaDB 10.3 con Oracle PL/SQL. Las siguientes características de compatibilidad están incluidas en MariaDB TX:

  • Parámetros de procedimientos almacenados
  • Construcción de procedimiento almacenado no ANSI
  • Sintaxis del cursor
  • Sintaxis de bucle
  • Declaración de variable
  • Herencia de tipos de datos (%TYPE, %ROWTYPE)
  • Excepciones de estilo PL/SQL
  • Sinónimos para tipos básicos de SQL (VARCHAR2, NÚMERO, …)

Esto permite una migración más sencilla de sus aplicaciones desde bases de datos Oracle a MariaDB TX.

Hasta el 80 % del código Oracle PL/SQL ahora se puede ejecutar en MariaDB sin necesidad de introducir cambios; esto impacta seriamente en la curva de aprendizaje general y reduce el tiempo necesario para reescribir el código heredado para que se ejecute en MariaDB TX.

También es importante tener en cuenta que MariaDB TX viene con un paquete de soporte y tendrá acceso a consultores que podrán compartir las mejores prácticas de migración con usted o incluso ayudarlo directamente en el proceso de planificación para que la transición sea aún menos problemática.

Mejoras en SQL

MariaDB TX también nos trae mejoras en la sintaxis de SQL, incluidas nuevas funciones que deberían ser muy útiles para los desarrolladores, como funciones de Windows o expresiones de tablas comunes. Además, las subcláusulas temporales podrían ser muy útiles, ya que permiten acceder a varias versiones de una fila determinada en función de un punto específico en el tiempo.

Todas las características se enumeran a continuación:

  • Subcláusulas temporales (p. ej., A PARTIR DE)
  • Funciones agregadas definidas por el usuario
  • Funciones agregadas de conjuntos ordenados
  • INTERSECCIÓN/EXCEPTO
  • Constructores de valores de tabla
  • Tiempo de espera de bloqueo DDL/SELECT
  • Expresiones de tabla comunes
  • Funciones de ventana
  • Funciones JSON

Motores de almacenamiento externo

El motor predeterminado para MariaDB es InnoDB, un motor de almacenamiento completo transaccional.

Es adecuado para la mayoría de las cargas de trabajo y funciona muy bien para la carga de trabajo OLTP (procesamiento de transacciones en línea). Sin embargo, no es el único motor de almacenamiento disponible en MariaDB TX. Obtiene acceso al motor Spider, que se puede usar para particionar sus datos en múltiples instancias de MariaDB mientras mantiene el soporte para transacciones XA.

Otro motor de almacenamiento que puede usar es MyRocks, un motor optimizado para almacenamiento y reducción de amplificación de escritura. Probado en batalla en Facebook, basado en LSN, se adapta perfectamente para almacenar grandes volúmenes de datos en almacenamiento SSD, reduciendo los costos al implementar una fuerte compresión y reduciendo la cantidad de escrituras requeridas para una carga de trabajo determinada (y, por lo tanto, minimizando el desgaste de SSD ).

Clúster Galera

MariaDB TX le brinda fácil acceso a Galera Cluster, una replicación multimaestro virtualmente síncrona. Galera Cluster se puede utilizar para diseñar clústeres de alta disponibilidad que abarcan WAN.

Galera Cluster se basa en el protocolo consciente del quórum, lo que garantiza que la partición de la red no será un problema y que el cerebro dividido ya no debería ser un problema. Galera Cluster proporciona medios para el aprovisionamiento automático de nodos nuevos o fallidos, lo que reduce el espacio de administración.

Características operativas

MariaDB TX también proporciona algunas funciones relacionadas con las tareas operativas. Instant ADD COLUMN ayuda a reducir el impacto de uno de los cambios de esquema más comunes. Las columnas invisibles ayudan a mantener la compatibilidad entre el código antiguo y el nuevo. Los índices en columnas virtuales aumentarán el rendimiento.

Copia de seguridad de María

MariaDB TX implementa el cifrado de datos en reposo que incluye el cifrado de registros binarios. Para garantizar que los usuarios de MariaDB TX puedan beneficiarse de las copias de seguridad sin bloqueo, se creó Mariabackup. Es una bifurcación mejorada de Xtrabackup, que no funcionaba correctamente con las funciones de cifrado de MariaDB TX. Ahora, puede disfrutar de sus copias de seguridad físicas en caliente con Mariabackup mientras sus datos están encriptados de forma segura.

Escala máxima de MariaDB

Además de MariaDB 10.3, MariaDB TX incluye MaxScale 2.3, un proxy compatible con SQL que se puede utilizar para crear entornos de alta disponibilidad. Viene con numerosas características y nos gustaría repasar las más importantes aquí.

Conmutación por error automática

MaxScale se puede utilizar para realizar un seguimiento del estado del nodo principal de MariaDB y, en caso de que falle, realizar una conmutación por error rápida y automática. La conmutación por error automatizada es fundamental para crear una solución de alta disponibilidad que pueda recuperarse rápidamente de la falla.

División de lectura y escritura

La división de lectura y escritura es una característica crítica para permitir la escala de lectura. Basta con que la aplicación se conecte al MaxScale y detectará la topología, determinará qué MariaDB actúa como maestro y cuáles como esclavos. A continuación, enrutará el tráfico de acuerdo con esto. Las consultas SELECT se enviarán a los esclavos, las escrituras se enviarán al maestro. Todo sucede automáticamente, la topología se supervisa todo el tiempo y, en caso de que se produzca una conmutación por error, el tráfico se redirigirá en función del cambio.

Enrutamiento de consulta transparente

MaxScale, al ser el punto de entrada del tráfico a MariaDB TX, se puede utilizar para realizar una división de lectura y escritura. A veces, esto todavía no es suficiente y sería genial tener una forma de controlar dónde se debe enviar la consulta dada. Esto es posible en MaxScale:puede hacer coincidir las consultas usando expresiones regulares y luego decidir si se envían al maestro o a los esclavos. Esto puede ayudar en algunos casos particulares en los que la consulta SELECT debe ejecutarse en el maestro debido a problemas de lectura después de escritura o simplemente porque debe tener la vista más actualizada del conjunto de datos.

Almacenamiento en caché de resultados de consultas

Para mejorar el rendimiento, el almacenamiento en caché de consultas es imprescindible. La caché de consultas disponible en MariaDB simplemente no funcionará en un entorno altamente concurrente, ya que impone la serialización de las consultas, lo que reduce seriamente el rendimiento incluso para cargas de trabajo de solo lectura. El uso de una solución externa para el caché no siempre es factible:después de todo, terminará con otra base de datos para mantener, proteger y mantener en buen estado. Puede ser mejor usar MaxScale como caché, suponiendo que ya lo use para otras funciones.

Bloqueo de consultas

A veces, las bases de datos sufren una consulta ineficiente, lo que crea una gran carga en el sistema. Podría ser que volver a escribir esa consulta llevaría demasiado tiempo (alguien tendría que volver a escribirlo, probar el cambio en la preparación y finalmente implementarlo en producción), un tiempo que no tiene. MaxScale puede ayudarlo aquí con funciones como el bloqueo de consultas, que básicamente le permiten evitar que una consulta determinada llegue a la base de datos. Esta característica también se puede usar para crear un firewall SQL:elimine todas las consultas que coincidan con patrones que apunten a la inyección de SQL u otras actividades potencialmente peligrosas y maliciosas.

Como puede ver, MariaDB TX viene con una lista de características y software que está diseñado para funcionar en conjunto y crear una base de datos escalable y de alta disponibilidad para el procesamiento de datos transaccionales.

Supervisión y gestión empresarial para MariaDB TX

ClusterControl es totalmente compatible con MariaDB TX. Puede implementar fácilmente MariaDB Server 10.3 y MaxScale 2.3. ClusterControl es compatible con las configuraciones de replicación de MariaDB, así como con MariaDB Galera Cluster.

Siempre que tenga conectividad SSH desde su instancia de ClusterControl a los nodos en los que desea implementar MariaDB TX, puede hacerlo con solo un par de clics.

Primero debe definir cómo ClusterControl llegará a los nodos MariaDB TX.

Luego, elija MariaDB como proveedor y busque una de las versiones compatibles. Pase la contraseña raíz de MariaDB.

Finalmente, decida sobre la topología. Puede implementar MariaDB TX en una configuración maestro - maestro, activo - en espera con esclavos adicionales. La replicación utilizará MariaDB GTID.

Para MariaDB Galera Cluster, el primer paso es exactamente el mismo, luego solo tiene que elegir MariaDB como proveedor, decidir la versión y definir los nodos en MariaDB Galera Cluster:

Con los clústeres implementados, puede usar el poder de ClusterControl para monitorear y administrar sus clústeres MariaDB TX.

Por ejemplo, agregar balanceadores de carga MaxScale está a solo unos clics de distancia:

Una vez implementado, puede administrar su MaxScale usando ClusterControl:

Puede escalar también escalar su clúster de Galera agregando nuevos nodos de Galera o esclavos de replicación asincrónica. Puede agregar esclavos o esclavos retrasados ​​a sus configuraciones de replicación, o realizar cambios de topología promoviendo un esclavo a maestro y volviendo a subordinar el resto de la configuración. ClusterControl monitoreará el clúster e intentará recuperar los nodos o clústeres fallidos en caso de que ocurra un incidente. Para las copias de seguridad, ClusterControl puede ayudarlo a definir una programación de copias de seguridad utilizando mysqldump y Mariabackup para que pueda beneficiarse fácilmente de las funciones de cifrado de MariaDB TX.

Para la parte de monitoreo y tendencia, ClusterControl se puede usar en modo sin agente:

O se puede usar junto con Prometheus y agentes para brindar una mejor perspectiva de lo que sucede en el clúster de MariaDB TX.

Esperamos que esta publicación introductoria del blog lo haya ayudado a comprender qué es MariaDB TX y cómo ClusterControl puede ayudarlo a administrarlo.