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

Cómo Actualizar la Versión del MuServer sin Perder Datos

Guía completa para actualizar tu MuServer a una versión más reciente conservando todas las cuentas, personajes e ítems de los jugadores de forma segura.

EQ Equipo ViciadosMU · Actualizado el 3 jul 2026 · ⏱ 12 min de lectura

Actualizar el MuServer de una versión a otra es una de las operaciones más arriesgadas en la administración de un servidor privado de MU Online. Realizada sin planificación, resulta en pérdida permanente de datos de los jugadores. Realizada correctamente, es un proceso controlado que generalmente requiere entre 2 y 4 horas de tiempo de inactividad planificado.

Esta guía cubre la migración entre versiones compatibles — por ejemplo, de Season 6 Episode 1 a Season 6 Episode 3, o de Season 9 a Season 12. Las migraciones entre seasons muy distantes (ej.: S6 a S13) requieren pasos intermedios adicionales no cubiertos aquí y deben realizarse por etapas.

Antes de Comenzar: Evaluando la Compatibilidad

No toda actualización de MuServer es directa. Las tablas de la base de datos cambian entre versiones, y los archivos de configuración incorporan nuevas claves obligatorias.

Identificando tu versión actual

Abre GameServer/GameServer.ini y localiza:

[Version]
ServerVersion = 1.04.0
GameVersion   = 0.99.60T

Compara con la versión de destino. Si GameVersion cambia de forma significativa, habrá cambios en el schema de la base de datos que deben aplicarse antes de iniciar los nuevos binarios.

Identificando los scripts de migración disponibles

Todo paquete de MuServer incluye una carpeta DBUpdate/ o SQL/ con scripts de migración numerados. Antes de continuar, lista esos scripts:

DBUpdate/
  001_AddColumnResetCount.sql
  002_CreateTableEventRanking.sql
  003_AlterTableCharacter.sql
  004_InsertDefaultEventSchedule.sql

Si el paquete no incluye scripts SQL, deberás comparar los schemas manualmente en SQL Server Management Studio (SSMS) — compara sys.columns en la base actual contra una base creada desde cero con la nueva versión.

Paso 1: Backup Completo — Sin Excepciones

Ejecuta en SSMS antes de cualquier otra acción:

-- Backup completo con timestamp automático
DECLARE @BackupPath NVARCHAR(500)
SET @BackupPath = 'C:\Backups\MuOnline_pre_update_' +
    REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120), ':', '-'), ' ', '_') + '.bak'

BACKUP DATABASE MuOnline
TO DISK = @BackupPath
WITH FORMAT, INIT, COMPRESSION,
     NAME = 'MuOnline Full Backup Pre-Actualizacion',
     STATS = 10;

PRINT 'Backup guardado en: ' + @BackupPath

Después del backup, verifica que el archivo no esté corrupto:

RESTORE VERIFYONLY FROM DISK = 'C:\Backups\MuOnline_pre_update_2026-07-03_22-00-00.bak';
-- Resultado esperado: "The backup set on file 1 is valid."
Atenção: Si RESTORE VERIFYONLY devuelve un error, el backup está corrupto. No continúes — investiga el problema de espacio en disco o permisos antes de seguir adelante.

También haz backup de los archivos de configuración:

xcopy /E /I /Y "C:\MuServer\GameServer\Data" "C:\Backups\GameServer_Data_backup"
xcopy /E /I /Y "C:\MuServer\ConnectServer" "C:\Backups\ConnectServer_backup"
xcopy /E /I /Y "C:\MuServer\DataServer" "C:\Backups\DataServer_backup"
xcopy /E /I /Y "C:\MuServer\EventServer" "C:\Backups\EventServer_backup"

Paso 2: Detener Todos los Servicios en el Orden Correcto

Detén en la siguiente secuencia para evitar escrituras de datos corruptos:

  1. Cierra el panel de administración web (si está en ejecución)
  2. Termina GameServer.exe — espera a que el proceso desaparezca completamente del Administrador de tareas
  3. Termina EventServer.exe
  4. Termina DataServer.exe
  5. Termina ConnectServer.exe
Nota: Si el servidor usa servicios de Windows registrados, detenlos via: net stop MuGameServer, net stop MuDataServer, net stop MuConnectServer. Ajusta los nombres de servicio según tu configuración. Verifica en services.msc que todos muestren estado "Detenido" antes de continuar.

Paso 3: Crear Base de Datos de Prueba y Validar Scripts SQL

Nunca apliques scripts de migración directamente en la base de datos de producción sin probarlos primero. Restaura una copia de prueba:

RESTORE DATABASE MuOnline_Prueba
FROM DISK = 'C:\Backups\MuOnline_pre_update_2026-07-03_22-00-00.bak'
WITH MOVE 'MuOnline'     TO 'C:\SQLData\MuOnline_Prueba.mdf',
     MOVE 'MuOnline_log' TO 'C:\SQLData\MuOnline_Prueba_log.ldf',
     REPLACE, STATS = 10;

Con la base de prueba lista, ejecuta los scripts de migración en orden numérico. Script típico para agregar una nueva columna:

USE MuOnline_Prueba;
GO

-- 001_AddColumnResetCount.sql
IF NOT EXISTS (
    SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'Character' AND COLUMN_NAME = 'ResetCount'
)
BEGIN
    ALTER TABLE dbo.Character ADD ResetCount SMALLINT NOT NULL DEFAULT 0;
    PRINT 'OK: Columna ResetCount agregada.';
END
ELSE
    PRINT 'SKIP: Columna ResetCount ya existe.';
GO
Dica: Usa siempre IF NOT EXISTS antes de ALTER TABLE ADD COLUMN e IF OBJECT_ID IS NULL antes de CREATE TABLE. Los scripts idempotentes pueden ejecutarse nuevamente sin romper la base de datos, lo cual es esencial al recuperarse de errores parciales.

Ejemplo de script para crear una nueva tabla de ranking de eventos:

-- 002_CreateTableEventRanking.sql
USE MuOnline_Prueba;
GO

IF OBJECT_ID('dbo.EventRanking', 'U') IS NULL
BEGIN
    CREATE TABLE dbo.EventRanking (
        RankID      INT IDENTITY(1,1) PRIMARY KEY,
        CharName    VARCHAR(10)  NOT NULL,
        EventType   TINYINT      NOT NULL,  -- 1=BloodCastle, 2=DevilSquare, 3=ChaosC
        Score       INT          NOT NULL DEFAULT 0,
        RankDate    DATETIME     NOT NULL DEFAULT GETDATE(),
        ServerCode  TINYINT      NOT NULL DEFAULT 0
    );
    PRINT 'OK: Tabla EventRanking creada.';
END
ELSE
    PRINT 'SKIP: Tabla EventRanking ya existe.';
GO

Tras ejecutar cada script, revisa la pestaña "Messages" en SSMS. Cualquier línea con Msg seguido de un número de error debe investigarse antes de continuar.

Paso 4: Reemplazar los Binarios del Servidor

Con los scripts validados en la base de prueba, reemplaza los ejecutables. Estructura de destino:

C:\MuServer\
  GameServer\
    GameServer.exe        <- reemplaza con el nuevo
    GameServer.ini        <- MERGE (compara y transfiere tus valores)
    Data\
      Monster\            <- reemplaza todo el contenido con la nueva versión
      Events\             <- reemplaza todo el contenido con la nueva versión
      Maps\               <- reemplaza todo el contenido con la nueva versión
  ConnectServer\
    ConnectServer.exe     <- reemplaza con el nuevo
    ConnectServer.ini     <- MERGE (verifica claves nuevas)
  DataServer\
    DataServer.exe        <- reemplaza con el nuevo
    DataServer.ini        <- MERGE (confirma string de conexión)
  EventServer\
    EventServer.exe       <- reemplaza con el nuevo
Atenção: Nunca reemplaces los archivos .ini de configuración sin comparar las diferencias. Usa WinMerge (herramienta gratuita) para hacer diff entre el .ini antiguo (del backup) y el nuevo: copia las claves nuevas a tu archivo existente manteniendo tus valores personalizados de IP, puerto, nombre del servidor y tasas.

Diff típico en GameServer.ini al actualizar a Season 9+:

; Clave NUEVA en la versión de destino — agrega a tu GameServer.ini
[RefinementSystem]
Enable = 1
MaxRefinementLevel = 15
RefinementFailRate = 30

; Clave EXISTENTE — mantén tu valor actual
[GameServerInfo]
ServerCode = 0
MaxUser = 300
ServerName = Tu Servidor MU

Paso 5: Ajustar el Nivel de Compatibilidad del Banco (si es necesario)

Si la nueva versión del MuServer requiere un nivel de compatibilidad específico de SQL Server:

-- Verificar nivel actual
SELECT name, compatibility_level FROM sys.databases WHERE name = 'MuOnline';

-- SQL Server 2008 / Season 6 (nivel 100)
ALTER DATABASE MuOnline SET COMPATIBILITY_LEVEL = 100;

-- SQL Server 2012 / Seasons más nuevos (nivel 110)
-- ALTER DATABASE MuOnline SET COMPATIBILITY_LEVEL = 110;

-- SQL Server 2017/2019 (nivel 140)
-- ALTER DATABASE MuOnline SET COMPATIBILITY_LEVEL = 140;

Paso 6: Aplicar la Migración en la Base de Datos de Producción

Tras la validación completa en la base de prueba, aplica los mismos scripts en la base real:

USE MuOnline;
GO
-- Ejecuta los scripts en orden:
-- 001_AddColumnResetCount.sql
-- 002_CreateTableEventRanking.sql
-- 003_AlterTableCharacter.sql
-- (etc.)

Paso 7: Iniciar Servicios y Validar

Inicia en el orden correcto:

  1. ConnectServer.exe
  2. DataServer.exe
  3. EventServer.exe
  4. GameServer.exe

Monitorea los logs inmediatamente tras cada inicio:

GameServer\Log\GameServer_YYYYMMDD.log
DataServer\Log\DataServer_YYYYMMDD.log

Errores más comunes y sus causas:

[ERROR] Table 'Character' column 'ResetCount' not found
→ El script 001 no fue aplicado en la base de producción. Ejecútalo en MuOnline.

[ERROR] Could not connect to DataServer on 127.0.0.1:55900
→ DataServer no inició o cambió de puerto. Verifica DataServer.ini y reinicia.

[ERROR] Map file not found: Data/Maps/Devias.att
→ Los archivos de mapa de la nueva versión no fueron copiados. Repite el Paso 4.

Ejecuta queries de validación post-migración:

USE MuOnline;

-- Conteo de personajes (compara con el número previo a la migración)
SELECT COUNT(*) AS TotalPersonajes FROM Character;

-- Verificar integridad de ítems
SELECT COUNT(*) AS PersonajesSinItems
FROM Character
WHERE Items IS NULL OR DATALENGTH(Items) = 0;
-- Resultado esperado: 0

-- Verificar guilds intactas
SELECT COUNT(*) AS TotalGuilds FROM Guild;

-- Limpiar sesiones bloqueadas (común tras reinicio)
UPDATE MEMB_STAT SET ConnectStat = 0, ServerName = '' WHERE ConnectStat = 1;
Dica: Conéctate con una cuenta GM de prueba antes de anunciar que el servidor está de vuelta. Navega por al menos 3 mapas diferentes (Lorencia, Dungeon, Devias) y activa un evento — Blood Castle o Devil Square — para confirmar el funcionamiento completo antes de permitir el acceso de los jugadores.

Verificación de Eventos Tras la Migración

Si los eventos no se están activando en los horarios correctos:

USE MuOnline;

-- Verificar los horarios de eventos configurados en la base de datos
SELECT * FROM EventSchedule ORDER BY EventType;

-- Reconfigurar horarios de Blood Castle (EventType = 1)
UPDATE EventSchedule
SET StartTime1 = '09:00', StartTime2 = '13:00',
    StartTime3 = '17:00', StartTime4 = '21:00',
    Duration = 60
WHERE EventType = 1;

-- Reconfigurar horarios de Devil Square (EventType = 2)
UPDATE EventSchedule
SET StartTime1 = '10:00', StartTime2 = '14:00',
    StartTime3 = '18:00', StartTime4 = '22:00',
    Duration = 30
WHERE EventType = 2;

Si los eventos están configurados via archivos .ini en lugar de la base de datos (común en builds más antiguas de Season 6):

; GameServer\Data\Events\BloodCastle.ini
[BloodCastle]
Enable = 1
Open_Time1  = 09:00
Close_Time1 = 10:00
Open_Time2  = 13:00
Close_Time2 = 14:00
Open_Time3  = 17:00
Close_Time3 = 18:00
Open_Time4  = 21:00
Close_Time4 = 22:00
MaxUser_BC1 = 10
MaxUser_BC7 = 10

Una actualización exitosa resulta en un servidor ejecutando la nueva versión con todos los datos de los jugadores intactos. Reserva al menos 30 minutos de pruebas con cuenta GM antes de anunciar la reapertura — los problemas descubiertos con el servidor lleno son exponencialmente más difíciles de resolver bajo la presión de los jugadores.

Perguntas frequentes

¿Necesito reinstalar SQL Server al actualizar MuServer?

No. La base de datos permanece intacta. Reemplazas los binarios del servidor (GameServer/, ConnectServer/, DataServer/) y aplicas scripts SQL de migración en las tablas existentes. El SQL Server en sí no se reinstala.

¿Qué versión de SQL Server se recomienda para Season 6?

SQL Server 2008 R2 o 2012 son los más estables para Season 6. Las versiones más nuevas (2017/2019) funcionan pero pueden requerir ajuste de compatibilidad via: ALTER DATABASE MuOnline SET COMPATIBILITY_LEVEL = 100;

¿Qué hacer si el GameServer falla tras la actualización con 'MapServer connect failed'?

Verifica GameServer/GameServer.ini, sección [MapServer], y confirma que MapServerIP y MapServerPort coincidan con la nueva configuración. En Season 6+, el MapServer es un proceso separado que debe iniciar antes que el GameServer.

¿Cómo revertir a la versión anterior si algo sale mal?

Restaura el backup en SSMS: RESTORE DATABASE MuOnline FROM DISK = 'C:\\Backups\\MuOnline_pre_update.bak' WITH REPLACE; Luego vuelve a colocar los binarios antiguos desde la carpeta de backup creada en el Paso 1.

EQ

Equipo ViciadosMU

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Sigue leyendo

Artículos relacionados

🛡️
Tutorial

Cómo crear un servidor de MU Online (guía completa 2026)

Guía completa paso a paso para crear tu propio servidor de MU Online: los 4 componentes que necesitas (SQL Server, MuServer, cliente/Main, y launcher), el orden correcto de instalación y configuración, cómo configurar las tasas de experiencia y drop, cómo conectar el servidor a internet con No-IP o IP fija, los puertos que debes abrir en el router y el firewall, los errores más comunes al iniciar por primera vez y cómo resolverlos, la diferencia entre un servidor de prueba local y un servidor público, y las consideraciones básicas de seguridad antes de abrir el servidor a jugadores externos.

12 min · Avanzado
Tutorial

Cómo crear un servidor de MU Online Season 6 — guía completa

Guía completa y específica para crear un servidor de MU Online Season 6 Episodio 3: las diferencias técnicas del S6 respecto a otras versiones (Master Level, Summoner como clase adicional, los eventos específicos de S6), qué versión de SQL Server usar para S6, cómo configurar el MuServer de S6 con las opciones específicas de esta versión (tasas de EXP, Drop Rate, configuración de Resets, Master Level, Castle Siege, Crywolf, Kanturu, Illusion Temple), los errores más comunes al configurar un S6 por primera vez, cómo verificar que la Season 6 está bien configurada (checklist completo de funcionalidades), y cómo equilibrar las tasas para una experiencia que mantenga a los jugadores activos por meses.

12 min · Intermedio
🖥️
Tutorial

Cómo Configurar MuServer para tu Servidor de MU Online

Guía técnica completa para instalar, configurar y poner en marcha MuServer: archivos clave, puertos, base de datos y primeras pruebas de conexión.

18 min · Avanzado