Currently viewing the category: "Bases de datos"

Suponemos el caso que tenemos un clúster MariaDB Galera con 3 nodos en la misma infraestructura. Puede darse el caso que haya un problema de electricidad y se detengan todos los nodos de golpe.

Cuando vuelvan a arrancar los nodos, cada nodo intentará sincronizarse con los demás nodos que tampoco estarán levantados y no arrancará nuestro clúster.

En este instante es cuando tenemos que decidir cual es el nodo que ha realizado el último commit (INSERT / UPDATE) y tiene los datos mas actualizados.

Para ello basta con ejecutar el mismo binario en todos los nodos, este se encargará de buscar el número del último commit. De los 3 nodos, el que tenga el número mas alto debe ser el que haga el bootstrap para arrancar el clúster de MariaDB Galera.

El nodo1 es el que tiene el commit mas alto, 26289 y este es el candidato a levantar el clúster en primera instancia.

Bastará con realizar el bootstrap del nodo1 siguiendo estas indicaciones:

Por último, podemos arrancar los otros dos nodos de la forma habitual con systemd.

 

En versiones anteriores de Debian se utilizaba init como gestor de arranque de los procesos, pero a partir de Debian 8 Jessie se ha cambiado por el gestor systemd.

Eso ha hecho que cambiara el método para realizar el bootstrap (inicializar) un clúster de base de datos MariaDB Galera. Es decir, arrancar el primer nodo de una agrupación.

En versiones anteriores de Debian, bastaba con ejecutar en el primer nodo:

Pero con Debian 8 Jessie y la llegada de systemd eso ha dejado de funcionar.

La gente de MariaDB ha añadido un excelente binario que facilita la tarea y fácil de recordar: galera_new_cluster