Cómo probar el plan de recuperación ante desastres de tu servidor de MU Online
Aprende a armar y, sobre todo, probar de verdad un plan de recuperación ante desastres (DRP) para tu servidor de MU Online, con simulaciones de falla de base de datos, de host y de corrupción de datos, y métricas de RTO y RPO.
Todo administrador de servidor de MU Online dice que "tiene backup". Pocos han probado, de verdad, restaurar ese backup desde cero, bajo presión de tiempo, y poner el servidor de vuelta en línea sin perder datos críticos. Un plan de recuperación ante desastres (DRP) solo vale algo después de haber s
Todo administrador de servidor de MU Online dice que "tiene backup". Pocos han probado, de verdad, restaurar ese backup desde cero, bajo presión de tiempo, y poner el servidor de vuelta en línea sin perder datos críticos. Un plan de recuperación ante desastres (DRP) solo vale algo después de haber sido probado — en el papel, es solo una lista de buenas intenciones. Este tutorial muestra cómo estructurar un DRP para un servidor de MU y, sobre todo, cómo simular desastres reales para validar que el plan funciona antes de que lo necesites de verdad.
Por qué "tener backup" no es lo mismo que "tener un plan"
Un backup es un archivo. Un plan de recuperación ante desastres es un proceso: quién lo ejecuta, con qué acceso, restaurando qué, en qué orden, y cómo validar que todo volvió correcto. Los servidores que solo tienen el archivo descubren en el momento de la crisis que falta la contraseña del proveedor de hosting, que el script de restauración está desactualizado, o que el backup de la base de datos no incluye las tablas de personaje más recientes. Probar el plan convierte esas suposiciones en hechos verificados.
Definiendo RTO y RPO antes de cualquier prueba
Antes de simular cualquier desastre, define dos números:
| Métrica | Definición | Ejemplo para servidor medio |
|---|---|---|
| RTO (Recovery Time Objective) | Tiempo máximo hasta que el servidor vuelva a estar en línea | 2 horas |
| RPO (Recovery Point Objective) | Pérdida máxima de datos aceptable, en tiempo | 15 minutos |
Estos números orientan decisiones técnicas: un RPO de 15 minutos exige backup incremental de la base de datos cada 15 minutos (o replicación), no solo un dump diario. Un RTO de 2 horas exige que el proceso de restauración completo (base de datos + GameServer + ConnectServer + panel web) esté documentado y cronometrado — si hoy toma 6 horas, el plan necesita ajuste antes de cualquier desastre real.
Inventario de lo que necesita ser recuperado
Un servidor de MU tiene varias piezas que necesitan recuperarse juntas y en el orden correcto:
| Componente | Prioridad de restauración | Fuente del backup |
|---|---|---|
| Base de datos (cuentas, personajes, ítems) | 1 (crítica) | Dump/backup incremental de SQL Server o MySQL |
| Archivos de configuración del GameServer | 2 | Repositorio versionado o snapshot de disco |
| ConnectServer y JoinServer | 2 | Snapshot de disco o imagen de contenedor |
| Panel web y base de datos del sitio | 3 | Backup separado, puede tener RPO más laxo |
| Assets del cliente (para redistribución) | 4 | Repositorio de archivos/CDN |
Sin este inventario documentado, es común restaurar primero la base de datos y descubrir que la versión del GameServer no es compatible con el schema restaurado — un error evitable con un checklist de orden correcto.
Escenarios de desastre que vale la pena simular
No pruebes solo "el servidor se cayó". Simula escenarios específicos, cada uno con una respuesta diferente:
| Escenario | Qué probar | Señal de éxito |
|---|---|---|
| Falla total del host (VPS eliminada) | Aprovisionar nuevo host y restaurar todo desde cero | Servidor en línea dentro del RTO definido |
| Corrupción de la base de datos | Restaurar desde backup sin el dump más reciente | Pérdida de datos dentro del RPO definido |
| Eliminación accidental de tabla | Restaurar solo la tabla afectada sin downtime total | Restauración puntual sin afectar el resto de la base |
| Ataque de ransomware/malware | Restaurar en entorno limpio, sin reintroducir el vector | Entorno limpio confirmado antes de reconectar |
| Error humano en deploy (config rota) | Rollback rápido a la versión anterior | Rollback completo en minutos, no horas |
Armando el entorno de prueba aislado
Nunca pruebes la restauración sobre el entorno de producción. Arma un VPS de prueba o VM local con el mismo stack (SQL Server/MySQL, GameServer, ConnectServer) y ejecuta ahí la restauración completa. Esto permite cronometrar el proceso sin riesgo y documentar cada paso real — comandos exactos, tiempo gastado en cada etapa, credenciales necesarias.
# Ejemplo de restauración de base de datos en entorno de prueba (MySQL)
mysql -u root -p mu_test < backup_2026-07-15_0300.sql
# Ejemplo para SQL Server vía sqlcmd
sqlcmd -S localhost -Q "RESTORE DATABASE MuOnline FROM DISK = 'D:\Backups\MuOnline_full.bak' WITH REPLACE"
Después de restaurar la base de datos, levanta el GameServer apuntando a esa instancia de prueba y confirma login, creación de personaje y persistencia de ítems — restaurar la base de datos sin validar que el servidor puede leerla correctamente es una prueba incompleta.
Cronometrando el proceso real
Durante la prueba, registra el tiempo de cada etapa en una tabla como esta:
| Etapa | Tiempo estimado | Tiempo real en la prueba | Responsable |
|---|---|---|---|
| Aprovisionar nuevo host/VM | 30 min | — | Infra |
| Restaurar base de datos | 20 min | — | DBA/Admin |
| Levantar GameServer y ConnectServer | 15 min | — | Admin |
| Validar login e integridad de personaje | 15 min | — | QA/GM |
| Comunicar el estado a la comunidad | 10 min | — | Comunidad |
Si el tiempo real supera el RTO definido, el plan necesita ajuste — ya sea automatizando etapas manuales, o pre-aprovisionando un host de contingencia ya configurado (standby caliente).
Validando la integridad de los datos después de la restauración
Restaurar sin validar es arriesgado. Después de cualquier prueba de restauración, ejecuta verificaciones específicas:
- El conteo de cuentas y personajes coincide con lo esperado (comparar con la métrica monitoreada antes del backup).
- El login de una cuenta de prueba conocida funciona y refleja el estado esperado de ítems y Zen.
- Los logs del GameServer no muestran errores de schema o tabla ausente.
- El ranking y las ligas cargan sin error (indicativo de integridad de tablas relacionadas).
Comunicación durante un desastre real
Parte del plan es cómo te comunicas mientras restauras. Prepara con anticipación un mensaje modelo para Discord/sitio informando que hubo un incidente, una estimación de retorno y un canal para actualizaciones — esto reduce el volumen de tickets duplicados y protege la reputación del servidor incluso durante una falla real.
Frecuencia de pruebas y disparadores de reprueba
Define una cadencia mínima y disparadores que activen una nueva prueba fuera del calendario:
| Disparador | Acción |
|---|---|
| Calendario trimestral | Prueba completa de restauración desde cero |
| Calendario mensual | Prueba rápida de restauración de base de datos aislada |
| Cambio de proveedor de hosting | Reprueba completa antes de confiar en el nuevo entorno |
| Actualización de versión del emulador | Reprueba de compatibilidad del backup restaurado |
| Cambio en el equipo (salida de administrador) | Revalidación de credenciales y accesos del plan |
Documentando el plan para alguien que no seas tú
Un plan de recuperación ante desastres solo funciona si otra persona del equipo puede ejecutarlo sin que tú estés disponible. Documenta cada paso en lenguaje simple, con comandos exactos, rutas de archivo y dónde encontrar credenciales (idealmente en una bóveda de contraseñas compartida, nunca en texto plano en Discord). Prueba esto literalmente pidiéndole a otro miembro del equipo que siga el documento sin tu ayuda.
Errores comunes y soluciones
| Síntoma | Causa probable | Solución |
|---|---|---|
| Nunca se hizo la prueba de restauración | El plan existe solo en el papel | Agendar la primera prueba completa en entorno aislado |
| La restauración tarda mucho más que el RTO | Proceso manual sin automatización | Automatizar etapas con scripts y considerar standby caliente |
| El backup restaurado no levanta en el GameServer | Incompatibilidad de versión/schema | Validar compatibilidad en cada actualización de emulador |
| Los datos restaurados no coinciden con lo esperado | El backup incremental falló silenciosamente | Agregar alerta de falla de backup y chequeo de integridad |
| Solo una persona sabe ejecutar el plan | Falta de documentación y prueba con otra persona | Documentar y probar con un segundo miembro del equipo |
Lista de verificación de prueba de recuperación ante desastres
- RTO y RPO definidos y documentados.
- Inventario de componentes y orden de restauración documentado.
- Entorno de prueba aislado aprovisionado.
- Escenarios de desastre (host, corrupción, eliminación, ataque) simulados individualmente.
- Tiempo real de cada etapa cronometrado y comparado con el RTO.
- Validación de integridad post-restauración ejecutada.
- Plan documentado y probado por una segunda persona del equipo.
- Calendario de repruebas definido con disparadores adicionales.
Un plan probado es lo que separa un incidente de algunas horas de una pérdida permanente de confianza de la comunidad. Después de validar tu recuperación ante desastres, revisa también la base de infraestructura descrita en la guía de creación de servidor de MU Online para asegurarte de que los fundamentos de backup y monitoreo ya nazcan alineados con tu plan.
Preguntas frecuentes
¿Tener backup automatizado ya es suficiente como plan de recuperación ante desastres?
No. El backup es solo un componente. Un plan de recuperación ante desastres también define quién actúa, en qué orden, con qué credenciales y en cuánto tiempo — y eso solo se valida probando una restauración completa, no simplemente confirmando que el archivo de backup existe.
¿Con qué frecuencia debo probar el plan de recuperación?
Lo mínimo recomendable es una prueba completa cada 3 meses y una prueba rápida (restauración de base de datos aislada) mensual. Después de cualquier cambio grande de infraestructura (cambio de host, nueva versión del emulador), repite la prueba completa antes de volver a confiar en el plan.
¿Qué son el RTO y el RPO y por qué importan tanto?
El RTO (Recovery Time Objective) es el tiempo máximo aceptable hasta que el servidor vuelva a estar en línea. El RPO (Recovery Point Objective) es la cantidad máxima de datos aceptable para perder, medida en tiempo. Definir ambos antes de un desastre real evita decisiones de pánico durante la crisis.
¿Necesito un servidor secundario para probar el plan?
Idealmente sí — un entorno aislado (VPS de prueba o VM local) evita que la prueba de restauración afecte al servidor de producción. Probar restaurando encima de la base de datos de producción es arriesgado y puede causar la misma interrupción que estás tratando de prevenir.
¿Qué hacer si la prueba de restauración falla?
Documenta exactamente dónde falló, corrige la causa (backup corrupto, script desactualizado, credencial expirada) y repite la prueba hasta completarla con éxito. Es mejor descubrir ahora que un plan falla en la prueba, que durante un incidente real con jugadores conectados.