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

Cómo Migrar Base de Datos SQL Server 2000 a SQL Server 2019 en MU

Guía completa para migrar la base de datos MuOnline de SQL Server 2000 a SQL Server 2019 sin perder personajes, cuentas ni ítems.

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

Migrar la base de datos de MU Online de SQL Server 2000 a SQL Server 2019 requiere pasos intermedios — no existe una ruta de actualización directa. Esta guía cubre el proceso completo, desde el backup inicial hasta la reconexión del GameServer.

Por qué se requiere un servidor intermediario

SQL Server 2019 no soporta restaurar backups generados por SQL Server 2000 (nivel de compatibilidad 80). La ruta de actualización obligatoria es:

SQL Server 2000 → SQL Server 2008 R2 (intermediario) → SQL Server 2019

Si tu servidor ya corre SQL Server 2008 o 2012, puedes saltarte el primer tramo y comenzar desde el paso del servidor intermediario.

Atenção: Nunca ejecutes la migración con el GameServer activo. Apaga todos los servicios (GameServer.exe, ConnectServer.exe, DataServer.exe, EventServer.exe) antes de cualquier operación de backup.

Paso 1 — Backup completo en SQL Server 2000

1.1 Abre el SQL Server Enterprise Manager (SQL 2000) → expande el servidor → clic derecho en MuOnline dentro de DatabasesAll TasksBackup Database.

1.2 Configura el backup:

  • Backup type: Database - complete
  • Destination: agrega la ruta C:\Backup\MuOnline_2000.bak
  • Marca Overwrite existing media

1.3 Haz clic en OK y espera la finalización. Verifica el archivo:

-- Ejecuta en Query Analyzer para verificar integridad
RESTORE VERIFYONLY FROM DISK = 'C:\Backup\MuOnline_2000.bak'
Dica: Copia MuOnline_2000.bak a un disco externo u otra máquina antes de continuar. Tener dos copias evita pérdidas irreversibles.

Paso 2 — Restaurar en SQL Server 2008 R2 (servidor intermediario)

2.1 En el servidor con SQL Server 2008 R2, abre SQL Server Management Studio (SSMS).

2.2 Clic derecho en DatabasesRestore Database:

  • To database: MuOnline_v2008
  • From device: selecciona C:\Backup\MuOnline_2000.bak
  • Pestaña Options: marca Overwrite the existing database (WITH REPLACE)

2.3 Ejecuta la restauración. Si aparece error de archivo físico (.mdf/.ldf), ajusta las rutas en la pestaña Files:

RESTORE DATABASE MuOnline_v2008
FROM DISK = 'C:\Backup\MuOnline_2000.bak'
WITH MOVE 'MuOnline_Data' TO 'C:\SQL\Data\MuOnline_v2008.mdf',
     MOVE 'MuOnline_Log'  TO 'C:\SQL\Log\MuOnline_v2008.ldf',
     REPLACE;

2.4 Eleva el nivel de compatibilidad a 100 (SQL 2008):

USE master;
ALTER DATABASE MuOnline_v2008 SET COMPATIBILITY_LEVEL = 100;
GO

2.5 Identifica tipos de datos obsoletos antes de continuar:

USE MuOnline_v2008;
GO
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE IN ('text', 'ntext', 'image')
  AND TABLE_CATALOG = 'MuOnline_v2008'
ORDER BY TABLE_NAME;

2.6 Convierte cada columna detectada. Ejemplo para T_Character:

-- Convertir tipos obsoletos a equivalentes modernos
ALTER TABLE T_Character   ALTER COLUMN MemoInfo         NVARCHAR(MAX);
ALTER TABLE T_GuildMember ALTER COLUMN GuildMasterMemo  NVARCHAR(MAX);
-- Repite para cada fila devuelta por la consulta anterior
Nota: Los procedimientos almacenados del MuServer S6 que usen READTEXT o WRITETEXT deben reescribirse con instrucciones estándar SELECT/UPDATE después de convertir estos tipos de columna.

Paso 3 — Generar un backup limpio en SQL 2008 R2

3.1 Con la base de datos corregida, genera un backup limpio:

BACKUP DATABASE MuOnline_v2008
TO DISK = 'C:\Backup\MuOnline_2008.bak'
WITH FORMAT, COMPRESSION, STATS = 10;

3.2 Verifica la integridad del backup:

RESTORE VERIFYONLY FROM DISK = 'C:\Backup\MuOnline_2008.bak';

Paso 4 — Restaurar en SQL Server 2019

4.1 Copia MuOnline_2008.bak al servidor que corre SQL Server 2019.

4.2 En SSMS conectado al SQL 2019, ejecuta:

RESTORE DATABASE MuOnline
FROM DISK = 'C:\Backup\MuOnline_2008.bak'
WITH MOVE 'MuOnline_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MuOnline.mdf',
     MOVE 'MuOnline_Log'  TO 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MuOnline_log.ldf',
     REPLACE, STATS = 5;
GO

4.3 Eleva la compatibilidad a SQL 2019:

ALTER DATABASE MuOnline SET COMPATIBILITY_LEVEL = 150;
GO

4.4 Habilita las opciones de rendimiento recomendadas:

ALTER DATABASE MuOnline SET RECOVERY SIMPLE;
ALTER DATABASE MuOnline SET AUTO_UPDATE_STATISTICS ON;
ALTER DATABASE MuOnline SET PAGE_VERIFY CHECKSUM;
GO

Paso 5 — Recrear login SQL y permisos

Los logins de SQL 2000 no se transfieren automáticamente a SQL 2019.

5.1 Crea el login usado por el GameServer (ej: muonline):

USE master;
CREATE LOGIN muonline WITH PASSWORD = 'TuContrasenaSegura123!',
    DEFAULT_DATABASE = MuOnline,
    CHECK_EXPIRATION = OFF,
    CHECK_POLICY = OFF;
GO

5.2 Mapea el login a la base de datos y asigna permisos:

USE MuOnline;
CREATE USER muonline FOR LOGIN muonline;
ALTER ROLE db_owner ADD MEMBER muonline;
GO
Atenção: Evita db_owner en producción si quieres separación de responsabilidades. Crea un rol personalizado con permisos solo sobre las tablas que el GameServer necesita (T_Account, T_Character, T_Item, etc.).

Paso 6 — Reconfigurar ODBC y GameServer.ini

6.1 En la máquina Windows del servidor de juego, abre el administrador ODBC de 64 bits: C:\Windows\System32\odbcad32.exe

6.2 Pestaña System DSNAdd → selecciona ODBC Driver 17 for SQL Server (descarga desde https://aka.ms/downloadmsodbcsql si no está instalado).

6.3 Configura:

  • Name: GameServer (o el nombre que ya existe en el ini)
  • Server: 127.0.0.1 o la IP del servidor SQL 2019
  • Autenticación SQL: login muonline y contraseña

6.4 Edita GameServer/GameServer.ini:

[ServerInfo]
DBAddr    = 127.0.0.1
DBPort    = 1433
DBID      = muonline
DBPwd     = TuContrasenaSegura123!
DBName    = MuOnline
Dica: Algunas versiones antiguas del MuServer usan DataServer/DataServer.ini para la cadena de conexión. Revisa ambos archivos y actualiza según sea necesario.

Paso 7 — Verificación post-migración

7.1 Verifica el conteo de filas en las tablas principales para confirmar integridad de datos:

USE MuOnline;
SELECT 'T_Account'   AS Tabla, COUNT(*) AS Total FROM T_Account
UNION ALL
SELECT 'T_Character', COUNT(*) FROM T_Character
UNION ALL
SELECT 'T_Item',      COUNT(*) FROM T_Item
UNION ALL
SELECT 'T_Guild',     COUNT(*) FROM T_Guild;

7.2 Inicia DataServer.exe y revisa el log en DataServer/Log/DataServer_YYYYMMDD.log — no deben aparecer errores de conexión.

7.3 Inicia GameServer.exe y ConnectServer.exe. Prueba el login con una cuenta GM.

7.4 Confirma que los stats, posiciones e ítems del personaje están intactos:

SELECT Name, Class, Level, Strength, Dexterity, Vitality, Energy
FROM T_Character
WHERE Name = 'NombreDetuPersonaje';

Solución de problemas comunes

ErrorCausaSolución
Database cannot be opened. It is in the middle of a restoreRestauración incompletaEjecuta RESTORE DATABASE MuOnline WITH RECOVERY;
Login failed for user 'muonline'Login no mapeado a la base de datosRepite el Paso 5 — verifica sys.syslogins
Named Pipes Provider, error 40SQL no acepta conexiones TCPHabilita TCP/IP en SQL Server Configuration Manager
GameServer no conecta tras la migraciónDSN ODBC apunta a la instancia antiguaRecrea el DSN de sistema según el Paso 6
Arithmetic overflow en procedimientos almacenadosNivel de compatibilidad aún en 80Confirma SELECT compatibility_level FROM sys.databases WHERE name = 'MuOnline' — debe devolver 150
Nota: Si tu MuServer usa procedimientos almacenados que referencian syscolumns, sysobjects u otras vistas del catálogo de SQL 2000, seguirán funcionando en SQL 2019 mediante el modo de compatibilidad. A largo plazo, es recomendable migrarlos a sys.columns, sys.objects y el resto de las vistas modernas del catálogo.

Perguntas frequentes

¿Puedo migrar directamente de SQL 2000 a SQL 2019 sin servidor intermediario?

No. SQL Server 2019 no puede restaurar backups (.bak) creados por SQL Server 2000 directamente. Es obligatorio usar un SQL Server intermediario (2008 R2 o 2012) para elevar el nivel de compatibilidad de 80 a 100, generar un nuevo .bak y recién entonces restaurar en SQL 2019.

¿Hay tablas de MuOnline que se rompen en la migración?

Sí. Las columnas de tipo 'text', 'ntext' e 'image' usadas en versiones antiguas del MuServer (ej: T_Account, T_Character) pueden generar errores. Ejecuta SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN ('text','ntext','image') AND TABLE_CATALOG='MuOnline' para identificarlas y convertirlas a VARCHAR(MAX), NVARCHAR(MAX) y VARBINARY(MAX) antes de migrar.

Tras la migración, el GameServer conecta pero no muestra personajes. ¿Qué revisar?

Verifica el DSN ODBC configurado en GameServer/GameServer.ini (entradas DBAddr, DBPort, DBID, DBPwd). En SQL 2019 el driver ODBC cambia — usa 'ODBC Driver 17 for SQL Server' en lugar del driver legacy 'SQL Server'. Recrea el DSN en el panel ODBC de 64 bits (C:/Windows/System32/odbcad32.exe).

¿Necesito cambiar el nivel de compatibilidad después de restaurar en SQL 2019?

Sí. Ejecuta: ALTER DATABASE MuOnline SET COMPATIBILITY_LEVEL = 150; para SQL 2019. El nivel de compatibilidad 80 (SQL 2000) bloquea funciones modernas y puede causar errores en procedimientos almacenados de versiones recientes del MuServer.

EQ

Equipo ViciadosMU

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

Sigue leyendo

Artículos relacionados

🖥️
Tutorial

Cómo Migrar y Optimizar la Base de Datos SQL en tu Servidor MU

Guía paso a paso para migrar y optimizar de forma segura la base de datos SQL Server de tu servidor MU Online, mejorando rendimiento y estabilidad.

18 min · Avanzado
🛡️
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 configurar SQL Server para MU Online — guía completa

Guía completa para configurar SQL Server como base de datos de un servidor de MU Online: por qué SQL Server es la base de datos estándar de MU (y no MySQL ni otros), los pasos exactos para restaurar la base de datos del MuServer (el archivo .bak que viene con la distribución), cómo crear un usuario SQL dedicado para el servidor en lugar de usar 'sa', cómo configurar la conexión ODBC que el MuServer usa para hablar con la base, cómo habilitar el protocolo TCP/IP en SQL Server Configuration Manager, la solución a los 3 errores de conexión más comunes (SQL parado, TCP/IP deshabilitado, Mixed Mode apagado), y cómo hacer backup automático de la base para proteger el progreso de los jugadores.

12 min · Intermedio