Saltar al contenido

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

Solución:

Configuración previa a la recuperación:

  1. Asegúrese de que la ruta MYSQL_HOME se esté exportando en el .profile. 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 para la recuperación de fallos:

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

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

a) Node0: este grastate.dat muestra un cierre ordenado. Tenga en cuenta el seqno. Buscamos el nodo con el mayor seqno.

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

b) Nodo1: este archivo grastate.dat muestra -1 en seqno. Este nodo se bloqueó durante el procesamiento de la transacción. Inicie este nodo utilizando la opción wsrep-recovery. MySQL almacenará el último GTID comprometido en el encabezado de datos InnoDB.

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

c) Nodo2: este archivo grastate.dat no tiene seqno ni 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 uuid, pero sin seqno. Para obtener el seqno, use la opción –wsrep-recovery. Para recuperar el seqno:

/ ruta / a / mysql / bin / mysqld –wsrep-recovery. 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 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 Node1 y Node2. 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 manera normal (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 Node se iniciaría como bootstrap, y permitiría que los nodos restantes se inicien uno a la vez (conectándose al Nodo con el seqno más alto).
¡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 *