El mayor portal de MU Online de Brasil — desde 2003
Tutorial Avanzado Infraestructura

Redundancia de base de datos para servidores de MU Online

Implementa redundancia de base de datos en tu servidor de MU Online usando replicación, failover automático y backups en múltiples capas, para evitar la pérdida de progreso y el downtime prolongado.

RO Rodrigo · Actualizado el 16 mar 2019 · ⏱ 16 min de lectura
Respuesta rápida

Un servidor de MU Online que depende de una única base de datos sin redundancia está a una falla de disco de perder todo el progreso de los jugadores. La redundancia de base de datos es la práctica de mantener copias sincronizadas y mecanismos de contingencia para que una falla de hardware, red o se

Un servidor de MU Online que depende de una única base de datos sin redundancia está a una falla de disco de perder todo el progreso de los jugadores. La redundancia de base de datos es la práctica de mantener copias sincronizadas y mecanismos de contingencia para que una falla de hardware, red o servicio no signifique datos perdidos u horas de downtime. Este tutorial cubre los conceptos, la configuración de replicación master-slave en MySQL, las estrategias de failover y cómo esto encaja en la operación diaria de un servidor privado.

Por qué la redundancia es diferente del backup

El backup es una foto de la base de datos en un punto en el tiempo, útil para la recuperación tras una corrupción o error humano, pero exige restauración manual e implica perder los datos generados después del último snapshot. La redundancia mantiene una o más copias vivas y actualizadas casi en tiempo real, permitiendo seguir operando (o volver a operar rápidamente) incluso si el servidor principal cae. Los dos mecanismos son complementarios, no sustitutos.

Arquitecturas de redundancia más comunes

ArquitecturaCómo funcionaComplejidadIndicado para
Master-Slave (replicación asíncrona)Un servidor escribe, uno o más replican en modo lecturaMediaLa mayoría de los servidores de MU privado
Master-MasterDos servidores aceptan escritura, se replican entre síAltaServidores grandes con necesidad de alta disponibilidad
Cluster (Galera/InnoDB Cluster)Múltiples nodos sincronizados, failover automáticoAltaServidores de gran porte, equipos de infraestructura dedicados
Backup incremental frecuenteSnapshots cada pocas horas, sin réplica vivaBajaServidores pequeños, sin presupuesto para una segunda máquina

Requisitos previos para montar la redundancia

  • Dos instancias de MySQL/MariaDB, idealmente en servidores físicos o VPS diferentes.
  • Acceso root a ambos servidores de base de datos.
  • Conectividad de red confiable entre master y slave (VPN o red privada del proveedor, evitando exponer el puerto 3306 públicamente).
  • Espacio en disco suficiente en el slave para acomodar el volumen total de datos del master.

Configurando la replicación master-slave

En el servidor master, habilita el binlog en el archivo de configuración (my.cnf o my.ini):

[mysqld]
server-id = 1
log_bin = mysql-bin
binlog_do_db = mu_online

Crea un usuario dedicado a la replicación:

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'SenhaForteAqui123';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;

En el servidor slave, configura un server-id diferente y apunta al master:

[mysqld]
server-id = 2
CHANGE MASTER TO
  MASTER_HOST='ip_do_master',
  MASTER_USER='replica_user',
  MASTER_PASSWORD='SenhaForteAqui123',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=  0;
START SLAVE;

Verificando el estado de la replicación

Después de iniciar, confirma que la réplica está sincronizando correctamente:

SHOW SLAVE STATUS\G

Los campos esenciales a observar son Slave_IO_Running y Slave_SQL_Running (ambos deben estar en Yes) y Seconds_Behind_Master (idealmente cercano a 0). Un valor alto en este último campo indica atraso en la réplica, que puede deberse a una carga excesiva de escritura en el master o a un hardware inferior en el slave.

Failover: qué hacer cuando el master cae

La redundancia solo tiene valor práctico si el failover es rápido. Existen dos caminos:

  1. Failover manual: un administrador detecta la caída, promueve el slave (STOP SLAVE; RESET MASTER;) y reapunta la connection string del GameServer a la nueva dirección. Simple, pero depende de que alguien lo note y actúe rápido.
  2. Failover automatizado: herramientas como ProxySQL, Orchestrator o MHA monitorean el master y promueven el slave automáticamente, redirigiendo las conexiones sin intervención manual. Más complejo de configurar, pero reduce el downtime de minutos a segundos.

Comparando el failover manual y el automatizado

CriterioManualAutomatizado (ProxySQL/Orchestrator)
Tiempo de respuestaMinutos a horas (depende de quién lo detecte)Segundos a pocos minutos
Complejidad de configuraciónBajaAlta, exige herramientas adicionales
Riesgo de error humanoAlto bajo presiónBajo, proceso estandarizado
Costo de mantenimientoBajoMedio, exige monitoreo de la propia herramienta
Indicado paraServidores pequeños/medianosServidores con una base alta de jugadores activos

La redundancia no elimina la necesidad de monitoreo

Un slave desactualizado en silencio es peor que no tener redundancia, porque crea una falsa sensación de seguridad. Configura alertas (correo, webhook de Discord) para cuando Seconds_Behind_Master supere un límite (por ejemplo, 30 segundos) o cuando Slave_IO_Running/Slave_SQL_Running se detengan, para que el equipo de infraestructura sepa de inmediato que la redundancia está comprometida.

Combinando redundancia con backup en capas

La redundancia cubre fallas de hardware; el backup cubre el error humano y la corrupción lógica. Una estrategia robusta combina ambos:

CapaFrecuenciaProtección contra
Réplica slave en tiempo realContinuaFalla de hardware/red del master
Backup lógico (mysqldump)Cada 4-6 horasError humano, corrupción puntual
Backup físico (snapshot de disco)DiarioFalla catastrófica, recuperación rápida
Backup externo (fuera del datacenter)Diario/semanalDesastre en el datacenter, ransomware

Probando el plan de redundancia periódicamente

Redundancia nunca probada es redundancia teórica. Agenda simulaciones trimestrales de caída del master (en un entorno de homologación, si es posible) para validar que el slave asume correctamente, que el GameServer reconecta sin corrupción de datos, y que el equipo sabe ejecutar el procedimiento de failover sin consultar la documentación desde cero.

Errores comunes y soluciones

SíntomaCausa probableSolución
Slave_IO_Running = NoProblema de red o credencial de replicación incorrectaRevisa la conectividad y el usuario de replicación
Seconds_Behind_Master creciendoSlave con hardware inferior o carga alta en el masterAumenta los recursos del slave u optimiza las queries del master
Datos divergentes entre master y slaveEscritura directa en el slave por errorConfigura el slave como read-only (read_only = 1)
El failover manual tardó demasiadoFalta de proceso documentado y alertasDocumenta el paso a paso y configura alertas automáticas
La réplica no inicia tras reiniciar el servidorPosición del binlog no persistida correctamenteUsa GTID en vez de posición de log para mayor resiliencia
Downtime largo incluso con redundanciaAusencia de failover automatizadoEvalúa ProxySQL/Orchestrator para reducir el tiempo de respuesta

Lista de verificación de redundancia de base de datos

  • Réplica slave configurada y sincronizando (Slave_IO/SQL_Running = Yes).
  • Usuario de replicación con contraseña fuerte y permisos mínimos necesarios.
  • Slave configurado como read-only para evitar divergencia.
  • Alertas configuradas para atraso de replicación o falla.
  • Proceso de failover (manual o automatizado) documentado.
  • Backup lógico y físico configurados en capas complementarias.
  • Simulación de failover probada en un entorno controlado.

Con la redundancia en marcha, el siguiente paso natural es revisar la arquitectura general del servidor para garantizar que otros componentes (GameServer, ConnectServer, panel web) también tengan un plan de contingencia — consulta el tutorial de creación de servidor de MU Online para revisar la base de la infraestructura completa.

Preguntas frecuentes

¿La redundancia de base de datos reemplaza la necesidad de backup?

No. La redundancia protege contra fallas de hardware e indisponibilidad momentánea, pero no contra el error humano, la corrupción lógica de datos o un DELETE accidental que se replica instantáneamente a todos los nodos. El backup sigue siendo indispensable incluso con redundancia activa.

¿Necesito dos servidores físicos separados para tener redundancia?

Idealmente sí, o al menos dos VPS en proveedores/regiones diferentes. Tener una réplica en la misma máquina física protege contra la corrupción de datos, pero no contra una falla de hardware, un corte de energía o un problema de red que afecte a toda la máquina.

¿Cuál es la diferencia entre replicación síncrona y asíncrona en MySQL?

En la replicación asíncrona (la más común en MU), el master confirma la transacción sin esperar a que la réplica la aplique, lo que es más rápido pero puede generar un pequeño atraso (lag) en la réplica. La síncrona espera la confirmación de la réplica antes de hacer commit, más segura pero con mayor latencia — rara vez se usa en MU por el impacto en el rendimiento.

¿Qué pasa con el GameServer durante un failover?

Depende de cómo esté implementado el failover. Con un proxy de base de datos (como ProxySQL) o un script de failover automatizado, el cambio puede ser casi transparente, con pocos segundos de reconexión. Sin automatización, el GameServer se traba hasta que un administrador apunte manualmente la nueva connection string al slave promovido.

¿La replicación master-slave impacta el rendimiento del servidor principal?

El impacto es mínimo en la mayoría de los casos, ya que la replicación asíncrona no bloquea al master esperando a la réplica. El mayor costo es de I/O y red para transmitir el binlog, generalmente insignificante comparado con la carga normal de un GameServer de MU.

RO
Fundador y editor jefe

Rodrigo mantiene ViciadosMU desde los inicios del portal. Especialista en creación y administración de servidores de MU Online, historia del juego y la evolución de las seasons — escribió buena parte del archivo antes de 2024.

Sigue leyendo

Artículos relacionados