Saltar al contenido

¿Cómo recuperar MariaDB Galera Cluster después de un bloqueo total?

Posterior a de esta prolongada recopilación de información dimos con la respuesta este enigma que suelen tener muchos los lectores. Te compartimos la solución y deseamos resultarte de gran apoyo.

Solución:

Configuración previa a la recuperación:

  1. Asegúrese de que la ruta MYSQL_HOME se exporte en el perfil. Si la instalación de MySQL está en una ubicación diferente, realice ese cambio en MYSQL_HOME. (Ejemplo: MYSQL_HOME=/path/to/mysql)

Pasos de recuperación de bloqueo:

  1. Encuentre un seqno válido. Mire el archivo grastate.dat en cada servidor para ver qué máquina tiene los datos más actualizados. El nodo con el seqno más grande es el nodo con los datos actuales.

  2. A continuación, mire tres archivos grastate.dat.

a) Node0: este grastate.dat muestra un apagado correcto. Tenga en cuenta el seqno. Estamos buscando el nodo con el seqno más grande.

/var/lib/mysql/grastate.dat
version: 2.1
uuid: cbd332a9-f617-11e2-b77d-3ee9fa637069
seqno: 43760

b) Node1: este archivo grastate.dat muestra -1 en el seqno. Este nodo se bloqueó durante el procesamiento de transacciones. Inicie este nodo con la opción wsrep-recover. MySQL almacenará el último GTID confirmado en el encabezado de datos de InnoDB.

/var/lib/mysql/grastate.dat
version: 2.1
uuid: cbd332a9-f617-11e2-b77d-3ee9fa637069
seqno: -1

c) Node2: Este archivo grastate.dat no tiene seqno o ID de grupo. Este nodo se bloqueó durante DDL.

/var/lib/mysql/grastate.dat
version: 2.1
uuid: 00000000-0000-0000-0000-000000000000
seqno: -1
  1. A continuación, recupere el nodo con el uuid, pero sin el seqno. Para obtener el seqno, use la opción –wsrep-recover. Para recuperar el seqno:

/ruta/a/mysql/bin/mysqld –wsrep-recover. Mysqld leerá los archivos de encabezado de InnoDB y se apagará inmediatamente. La última posición de wsrep se imprime en el archivo mysqld.log.

Ejemplo: 140716 12:55:45 [Note] WSREP: estado guardado encontrado: cbd332a9-f617-11e2-b77d-3ee9fa637069:36742

  1. Mire el seqno de Node0 (seqno: 43760) y Node1 (seqno: -1). Node0 tiene la instantánea actual de los datos y debe iniciarse primero.

  2. En Node0, emita este comando para iniciar el nodo:

a) nohup /ruta/a/mysql/bin/mysqld_safe — wsrep_cluster_address=gcomm:// &; espere a que este nodo se conecte.

b) Luego inicie el Nodo1 y el Nodo2. Estos dos nodos deben iniciarse uno a la vez y pueden iniciarse como lo haría normalmente.

c) Una vez que los tres nodos estén activos y en un estado primario, reinicie Node0 de la forma habitual (para que aparezca como parte de todo el clúster, no solo como arranque).

  1. Si Node1 o Node2 tuvieran el seqno más alto, entonces ese nodo se iniciaría como bootstrap y permitiría que los nodos restantes se iniciaran uno a la vez (conectándose al nodo con el seqno más alto).

Comentarios y puntuaciones

No se te olvide dar visibilidad a este enunciado si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *