¿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 TABLEen tablas grandes durante tráfico: Usept-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=1Gpara 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
mariabackupcomo 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.