El mayor portal de MU Online de Brasil — desde 2003
Tutorial Intermedio Servidor

Cómo hacer backup de la base de datos de tu servidor de MU Online

Guía completa de backup para servidores de MU Online: por qué el backup no es opcional (las 4 catástrofes más comunes que borran datos de servidores — disco duro, SQL Server corrupto, hack, error humano), qué bases de datos necesitas respaldar (MuOnline, EventMU, RankingMU y las otras), el paso a paso para configurar un job de backup automático en SQL Server Agent que corra cada noche, cómo hacer backup manual inmediato antes de una actualización de riesgo, cómo gestionar la rotación de backups para no llenar el disco (guardar los últimos 7 días, el de cada semana, el de cada mes), cómo copiar los backups a otro lugar (otro disco, la nube, un NAS), cómo verificar que un backup está íntegro antes de necesitarlo, el procedimiento exacto de restauración ante una emergencia, y cuánto tiempo dura una restauración según el tamaño de la base.

RO Rodrigo · Actualizado el 25 nov 2013 · ⏱ 12 min de lectura
Respuesta rápida

Un servidor de MU Online sin backup es un accidente esperando ocurrir. Esta guía cubre el sistema completo de protección de datos — desde la configuración del backup automático hasta el procedimiento de restauración ante una emergencia.

Un servidor de MU Online sin backup es un accidente esperando ocurrir. Esta guía cubre el sistema completo de protección de datos — desde la configuración del backup automático hasta el procedimiento de restauración ante una emergencia.

Atenção: No existe "a mí no me va a pasar". Los administradores que pierden datos siempre creyeron lo mismo antes. Un disco duro falla, un SQL Server se corrompe, un hack borra la base, un administrador ejecuta el comando equivocado. El backup convierte un desastre potencial en un inconveniente de minutos.

Qué debes respaldar en un servidor de MU

LAS BASES DE DATOS QUE NECESITAN BACKUP:

BASE PRINCIPAL (obligatoria):
→ MuOnline (o el nombre que le haya dado tu distribución)
→ Contiene: cuentas, personajes, ítems en inventario, ítems en el suelo, guilds, amigos, resets
→ Es la base más grande e importante — NUNCA dejes de hacer backup de esta

BASES ADICIONALES (según la distribución):
→ EventMU: datos de eventos (Blood Castle, Devil Square, Castle Siege)
→ RankingMU o RankingServer: el ranking de personajes y guilds
→ LogServer o MuLogger: logs de acciones del servidor (útil para moderación pero menos crítico)
→ CastleDB o SiegeDB: datos del Castle Siege (posición de la guild, beneficios activos)

CÓMO SABER QUÉ BASES TIENES:
→ En SSMS: panel izquierdo → "Databases" → lista todas las bases
→ Verifica cuáles son de MU (generalmente el nombre lo indica)
→ Haz backup de TODAS las que tienen datos de MU — el espacio en disco es barato

ARCHIVOS DEL SERVIDOR (backup mensual o ante cambios):
→ Los ejecutables del MuServer (.exe) y sus archivos de configuración (.ini)
→ Cambian con poca frecuencia — un backup mensual o ante cada actualización mayor es suficiente
→ No necesitan la frecuencia diaria de la base de datos
→ Guárdalos en el mismo lugar que los backups de SQL

Configurar backup automático con SQL Server Agent

EL SISTEMA DE BACKUP AUTOMÁTICO:

SQL Server incluye el "SQL Server Agent" — un servicio que ejecuta tareas programadas.
Usarlo para backups automáticos elimina la dependencia de hacer el backup manualmente.

VERIFICAR QUE EL SQL SERVER AGENT ESTÁ CORRIENDO:
1. En Servicios de Windows: busca "SQL Server Agent (MSSQLSERVER)"
2. Estado: debe ser "Running"
3. Tipo de inicio: debe ser "Automatic" (para que se inicie con Windows)
4. Si está detenido: clic derecho → Start
5. Si el tipo de inicio es "Manual" o "Disabled": cambia a "Automatic"

CREAR EL JOB DE BACKUP EN SSMS:
1. En SSMS: expande "SQL Server Agent" en el panel izquierdo
2. Clic derecho en "Jobs" → "New Job..."
3. En "General": nombre del job → "Backup Diario MuOnline"

4. En "Steps" → "New...":
   → Step name: "Backup Full"
   → Type: "Transact-SQL script (T-SQL)"
   → Database: la base de MU (o "master" para ejecutar en cualquier contexto)
   → Command:

-- BACKUP AUTOMÁTICO CON FECHA EN EL NOMBRE DEL ARCHIVO:
DECLARE @BackupPath NVARCHAR(500)
SET @BackupPath = 'D:\Backups\MuOnline_' + 
    CONVERT(VARCHAR, GETDATE(), 112) +  -- Formato: YYYYMMDD
    '_' +
    REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '') +  -- Formato: HHMMSS
    '.bak'

BACKUP DATABASE [MuOnline]
TO DISK = @BackupPath
WITH FORMAT,
     INIT,
     COMPRESSION,
     STATS = 10;  -- Muestra progreso cada 10%

5. En "Schedules" → "New...":
   → Name: "Diario a las 4AM"
   → Schedule type: Recurring
   → Occurs: Daily
   → Every: 1 day
   → At: 04:00:00 (hora de bajo movimiento — ajusta según tu zona horaria y horario de jugadores)
   → OK

6. En "Notifications" (opcional):
   → Configura una notificación por email si el backup falla (requiere configurar Database Mail)

7. OK para guardar el job

Backup manual inmediato — para antes de cambios de riesgo

CUÁNDO HACER UN BACKUP MANUAL INMEDIATO:

Antes de cualquiera de estas acciones:
→ Actualizar el MuServer a una nueva versión
→ Hacer cambios en la estructura de la base (ALTER TABLE, nuevos campos)
→ Aplicar un hotfix que modifica datos de jugadores
→ Hacer mantenimiento de emergencia ante un comportamiento raro del servidor
→ Resetear rankings o datos masivos

CÓMO HACER BACKUP MANUAL EN SSMS:
1. Clic derecho en "MuOnline" → "Tasks" → "Back Up..."
2. En "Backup type": Full
3. En "Destination": verifica que hay un archivo destino (o agrega uno con "Add...")
4. El nombre del archivo: usa un nombre descriptivo como "MuOnline_PreActualizacion_20260702.bak"
5. Clic en "OK"
6. Espera el mensaje "Database backed up successfully"

COMANDO SQL PARA BACKUP MANUAL RÁPIDO:
-- Ejecutar en SSMS → New Query:
BACKUP DATABASE [MuOnline]
TO DISK = 'D:\Backups\MuOnline_Manual_' + CONVERT(VARCHAR, GETDATE(), 112) + '.bak'
WITH FORMAT, INIT, COMPRESSION;

→ Ejecuta (F5)
→ Espera el mensaje de "Backup Database successfully completed"

Gestión de rotación de backups

ESTRATEGIA DE RETENCIÓN DE BACKUPS:

Guardar TODOS los backups para siempre llena el disco. Necesitas una política de rotación:

POLÍTICA BÁSICA (la que usas con poco espacio):
→ Guarda los últimos 7 días: el backup de hoy reemplaza el de hace 7 días
→ Esto te cubre para errores descubiertos en el transcurso de la semana

POLÍTICA ESTÁNDAR RECOMENDADA:
→ Backups diarios: mantén los últimos 7 días
→ Backups semanales: guarda el backup del primer día de cada semana, por 4 semanas
→ Backups mensuales: guarda el backup del primer día de cada mes, por 6 meses
→ Esta estrategia cubre desde errores del día de hoy hasta incidentes descubiertos meses después

SCRIPT DE LIMPIEZA AUTOMÁTICA (elimina backups de más de 7 días):
-- Agregar como step adicional en el mismo job de SQL Agent:
DECLARE @CleanDate DATETIME
SET @CleanDate = DATEADD(DAY, -7, GETDATE())

-- Borrar archivos .bak de la carpeta más antiguos de 7 días:
EXEC xp_delete_file 0, N'D:\Backups\', N'bak', @CleanDate

HERRAMIENTA ALTERNATIVA PARA ROTACIÓN (script de PowerShell):
-- Crear un archivo .ps1 y ejecutarlo como tarea programada:
$backupFolder = "D:\Backups\"
$daysToKeep = 7
Get-ChildItem -Path $backupFolder -Filter "*.bak" |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$daysToKeep) } |
Remove-Item

Copiar los backups a otro lugar

POR QUÉ UN BACKUP EN EL MISMO DISCO NO ES SUFICIENTE:

Si el disco duro del servidor falla: el backup en el mismo disco también falla.
El backup necesita estar en al menos DOS lugares físicamente diferentes.

OPCIONES PARA ALMACENAMIENTO EXTERNO:

OPCIÓN 1 — OTRO DISCO LOCAL:
→ Configura el backup para guardar en D:\ si el servidor está en C:\
→ Mejor que nada — protege contra fallo del disco principal
→ No protege contra: incendio, robo, desastre físico del servidor

OPCIÓN 2 — OTRO PC EN LA RED:
→ Guarda los backups en una carpeta compartida de otro PC en la red local
→ Script de PowerShell para copiar automáticamente:
  Copy-Item -Path "D:\Backups\*.bak" -Destination "\\OtroPC\BackupsMU\" -Force
→ Mejor para: LAN local con otro PC siempre encendido

OPCIÓN 3 — ALMACENAMIENTO EN LA NUBE:
→ Google Drive, OneDrive, Dropbox: sincronización automática de la carpeta de backups
→ Backblaze B2: barato, diseñado para backups automatizados (~$0.006/GB/mes)
→ AWS S3: profesional, escalable, integración con scripts
→ Proceso: el backup cae en D:\Backups\ → una herramienta lo sube automáticamente a la nube
→ Para MU: los backups de 50-500 MB suben rápido incluso con conexiones modestas

AUTOMATIZAR LA COPIA A LA NUBE (con rclone — gratuito):
→ Rclone es una herramienta CLI que sincroniza carpetas locales con servicios de nube
→ Una vez configurado: rclone copy D:\Backups\ remote:backups-mu --min-age 1m
→ Puede ejecutarse como tarea programada de Windows después del job de SQL Agent
Dica: La nube como destino secundario de backup resuelve tres problemas a la vez: protección contra fallo de hardware local, acceso al backup desde cualquier lugar (si el servidor físico falla, puedes restaurar en otro PC), y capacidad de auditoría histórica (algunos servicios de nube guardan versiones anteriores de los archivos). El costo para los tamaños típicos de base de MU es mínimo.

Procedimiento de restauración ante emergencia

CUANDO ALGO SALE MAL — CÓMO RESTAURAR:

PASO 1 — EVALUAR EL PROBLEMA:
→ ¿Es un problema de datos (personajes perdidos, ítems desaparecidos)? → restaurar la base
→ ¿Es un fallo del servidor SQL? → verificar el servicio, intentar reparar antes de restaurar
→ ¿Es un hack que borró datos? → restaurar la base y cambiar todas las contraseñas

PASO 2 — DETENER EL MUSERVER:
→ ANTES de restaurar: cierra TODOS los ejecutables del MuServer (GameServer, DataServer, etc.)
→ Si el GameServer sigue corriendo con la base siendo restaurada: puede ocurrir corrupción
→ Solo después de detener el MuServer: procede con la restauración

PASO 3 — ELEGIR EL BACKUP CORRECTO:
→ Para recuperar datos perdidos hoy: usa el backup de ayer (el más reciente antes del problema)
→ Para un hack reciente: usa el backup de antes del hack (puede ser de varios días atrás)
→ Si no sabes cuándo ocurrió el problema: empieza por el backup más reciente y ve más atrás si el problema persiste

PASO 4 — RESTAURAR EN SSMS:
1. En SSMS: clic derecho en "MuOnline" → "Tasks" → "Restore" → "Database..."
2. En "Source": "Device" → selecciona el archivo .bak que elegiste
3. Marca "Close existing connections to destination database" (si la opción existe)
4. OK → espera la restauración

O con SQL:
RESTORE DATABASE [MuOnline]
FROM DISK = 'D:\Backups\MuOnline_20260701_040001.bak'
WITH REPLACE,
     RECOVERY;

PASO 5 — VERIFICAR LA RESTAURACIÓN:
→ Inicia el MuServer
→ Verifica que el servidor arranca sin errores
→ Conecta con un personaje de prueba y verifica el estado
→ Anuncia a los jugadores que el servidor está de vuelta y qué período fue restaurado

PASO 6 — COMUNICAR A LOS JUGADORES:
→ /post o Discord: "El servidor sufrió un incidente. Se restauró al estado del [fecha del backup]. El progreso entre [fecha] y [hora del incidente] fue perdido. Disculpen los inconvenientes."
→ La transparencia siempre es mejor que el silencio — los jugadores entienden los incidentes, lo que no perdonan es que les oculten información

Consulta también la guía de configuración de SQL Server para MU Online (la guía base de operación de SQL — un backup no sirve si no sabes cómo restaurar), el tutorial de cómo crear el servidor de MU (el contexto completo del servidor del cual estás protegiendo los datos), y la guía de protección contra DDoS (el backup protege los datos, el anti-DDoS protege la disponibilidad — ambos son pilares de la seguridad del servidor).

Preguntas frecuentes

¿Con qué frecuencia debo hacer backup de mi servidor de MU?

Para un servidor activo con jugadores online: mínimo una vez al día (backup diario automático es lo estándar). Si el servidor tiene mucho movimiento (eventos diarios, economía activa): considera backups cada 6 u 8 horas. Para un servidor en mantenimiento o de pruebas: puede ser menos frecuente. La pregunta que te guía: ¿cuántas horas de progreso de los jugadores estoy dispuesto a perder si hay un desastre ahora mismo?

¿El backup del SQL Server incluye todo lo que necesito para restaurar el servidor?

El backup de la base de datos (el archivo .bak) incluye: cuentas, personajes, ítems, guilds, rankings, configuraciones de eventos, y todo lo que vive en el SQL. Lo que NO incluye: los archivos del MuServer (los ejecutables, los .ini de configuración), el cliente del juego, y el sitio web. Para una recuperación completa debes tener también los ejecutables del servidor respaldados — pero esos no cambian con frecuencia. La base de datos es lo que cambia constantemente y lo que más necesita backup regular.

¿Puedo restaurar un backup en un servidor diferente?

Sí, con consideraciones. El backup de SQL Server (.bak) puede restaurarse en cualquier instancia de SQL Server de igual o mayor versión. Si el backup era de SQL 2008 R2: puede restaurarse en SQL 2014, 2016, 2019. Si el backup era de SQL 2019: NO puede restaurarse en SQL 2008. Para migrar el servidor completo a otro PC: llevas el .bak + los ejecutables del MuServer + los archivos de configuración (.ini) y restauras en el nuevo PC.

¿Cuánto espacio ocupa el backup del servidor de MU?

Depende del tamaño de la base activa. Una base de datos de un servidor pequeño-mediano (~100-500 jugadores registrados): entre 50 MB y 500 MB por backup. Un servidor grande con años de historia: puede llegar a varios GB. El backup WITH COMPRESSION (SQL 2008+) comprime el tamaño, normalmente reduciendo el archivo a un 20-40% del tamaño original de la base. Reserva mínimo 10 GB para la carpeta de backups y ajusta según el crecimiento real.

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