¿Qué es MariaDB Galera Cluster?

MariaDB Galera Cluster proporciona una solución de replicación síncrona multi-master para MariaDB. A diferencia de la replicación asíncrona tradicional donde las escrituras van a un solo master, Galera permite leer y escribir en cualquier nodo del clúster.

Características clave:

  • Replicación síncrona: Todos los nodos son consistentes — sin retraso de réplica, sin transacciones perdidas.
  • Multi-master: Lea y escriba en cualquier nodo.
  • Aprovisionamiento automático de nodos: Los nuevos nodos reciben automáticamente una copia completa de datos (SST) o actualizaciones incrementales (IST).
  • Control automático de membresía: Los nodos fallidos se detectan y eliminan automáticamente.

Requisitos Previos

  • Tres servidores Linux con IPs estáticas.
  • MariaDB 10.6+ o 11.x instalado en todos los nodos.
  • Puertos abiertos: 3306, 4567, 4568, 4444.
  • Acceso root o sudo.

Solución Paso a Paso

1. Instalar MariaDB y Galera

sudo apt update
sudo apt install -y mariadb-server galera-4 mariadb-backup

2. Configurar Galera en Cada Nodo

Edite /etc/mysql/mariadb.conf.d/60-galera.cnf:

[galera]
wsrep_on                 = ON
wsrep_provider           = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_name       = "my_galera_cluster"
wsrep_cluster_address    = "gcomm://192.168.1.101,192.168.1.102,192.168.1.103"
wsrep_node_address       = "192.168.1.101"
wsrep_node_name          = "node1"
wsrep_sst_method         = mariabackup
wsrep_sst_auth           = "sstuser:sstpassword"
binlog_format            = ROW
default_storage_engine   = InnoDB
innodb_autoinc_lock_mode = 2

3. Arrancar el Primer Nodo

sudo galera_new_cluster
SHOW STATUS LIKE 'wsrep_cluster_size';
-- Debe retornar: 1

4. Unir Nodos Restantes

sudo systemctl start mariadb

Solución de Problemas Comunes

Recuperación de Split-Brain

SHOW STATUS LIKE 'wsrep_cluster_status';
-- "Non-Primary" significa que este nodo está en la partición minoritaria

Recuperación de Caída Completa del Clúster

sudo galera_recovery
# Arranque desde el nodo con el seqno más alto
sudo galera_new_cluster

Fallos de SST

sudo tail -100 /var/log/mysql/error.log | grep -i "sst\|wsrep"

Errores Comunes y Casos Especiales

  • No use ALTER TABLE en tablas grandes durante tráfico: Use pt-online-schema-change.
  • Solo InnoDB: Galera solo replica tablas InnoDB.
  • Mínimo 3 nodos: Siempre ejecute un número impar de nodos.
  • Dimensione el gcache: Configure gcache.size=1G para habilitar IST.

Resumen

  • MariaDB Galera Cluster proporciona replicación síncrona multi-master con failover automático.
  • Siempre arranque desde el nodo con los datos más recientes después de un apagado completo.
  • Use mariabackup como método SST para clústeres de producción.
  • Ejecute un número impar de nodos (mínimo 3) para evitar escenarios de split-brain.

Artículos Relacionados