Cómo Restaurar la Base de Datos y Mover tu Servidor de MU Online
Aprende a restaurar tu base de datos SQL de MU Online y migrar el servidor completo a una nueva máquina sin pérdida de datos ni tiempo de inactividad prolongado.
Visión General y Cuándo Usar Esta Guía
Mover un servidor privado de MU Online a una nueva máquina — o recuperarse tras un disco fallido — implica dos operaciones estrechamente relacionadas: restaurar un backup de SQL Server y reconfigurar todos los componentes del servidor para que apunten al origen de datos correcto en el nuevo host. Ambas tareas son directas cuando se abordan en orden, pero omitir pasos o apresurar la secuencia es la causa más frecuente de personajes corruptos, objetos perdidos y fallos de autenticación después de una migración.
Esta guía cubre el flujo completo desde la preparación previa a la migración hasta la validación posterior. Asume que estás ejecutando un paquete de servidor Season 6 o posterior sobre Windows Server con Microsoft SQL Server 2012 o más reciente.
Paso 1 — Preparación para la Migración
Antes de tocar archivos o bases de datos, recopila la siguiente información y recursos desde la máquina de origen.
Lista de verificación para la máquina de origen:
- Archivo de backup completo
.bakde la base de datos MuOnline (ver más abajo cómo crearlo) - Todo el árbol de directorios del servidor (carpetas GameServer, ConnectServer, JoinServer, DataServer)
- Archivos de configuración personalizados:
GameServer.ini,ServerInfo.xml,MuConfig.xml - Lista de reglas de firewall y puertos abiertos (típicamente 55901, 55902, 44405, 55980)
- Nombre de la instancia de SQL Server, credenciales del login
say cualquier login SQL personalizado usado por los componentes del servidor - Listas de exclusiones del Firewall de Windows y del antivirus para replicarlas en la nueva máquina
Creación de un backup completo de la base de datos en la máquina de origen:
Abre SQL Server Management Studio (SSMS), haz clic derecho sobre la base de datos MuOnline, elige Tareas → Copia de seguridad. Establece el tipo de backup como Completo y elige una ruta de destino. Haz clic en Aceptar y espera a que finalice la operación.
También puedes ejecutar la siguiente consulta en SSMS:
-- Backup completo de la base de datos MuOnline
-- Reemplaza C:\Backup\ con tu ruta de destino real
BACKUP DATABASE [MuOnline]
TO DISK = N'C:\Backup\MuOnline_Full.bak'
WITH
FORMAT, -- → sobrescribe cualquier conjunto de backup existente en el archivo
INIT, -- → inicia un nuevo conjunto de medios limpio
NAME = N'MuOnline-Full Database Backup',
COMPRESSION, -- → reduce el tamaño del archivo de forma significativa
STATS = 10; -- → muestra el progreso cada 10 por ciento
-- Verifica que el backup sea legible antes de transferirlo
RESTORE VERIFYONLY
FROM DISK = N'C:\Backup\MuOnline_Full.bak';
Copia el archivo .bak verificado y todo el directorio del servidor a un disco externo o a una ubicación de red compartida accesible desde la nueva máquina.
Paso 2 — Instalación de SQL Server en la Nueva Máquina
La nueva máquina necesita una instancia compatible de SQL Server antes de poder restaurar la base de datos. Instala SQL Server usando la misma edición o una posterior a la de la máquina de origen. Durante la instalación, presta atención a estas configuraciones:
- Nombre de instancia: Usa el mismo nombre de instancia que en el origen si tus archivos de configuración lo referencian por nombre (por ejemplo,
.\SQLEXPRESSo.\MSSQLSERVER). Si lo cambias, deberás actualizar todos los archivos de configuración después. - Modo de autenticación: Selecciona Modo Mixto para que la autenticación de SQL Server (login
sa) funcione junto con la autenticación de Windows. - Contraseña de sa: Establece una contraseña robusta y guárdala de forma segura. Todos los componentes del servidor la necesitarán.
- Protocolo TCP/IP: Tras la instalación, abre el Administrador de Configuración de SQL Server, navega a Configuración de Red de SQL Server → Protocolos para [instancia] y habilita TCP/IP. Establece el puerto en 1433 bajo Direcciones IP → IPAll.
Reinicia el servicio de SQL Server tras habilitar TCP/IP.
> [!ATENCION] > No omitas la habilitación de TCP/IP. Los componentes del servidor de MU Online se conectan a SQL Server a través de la pila de red incluso cuando se ejecutan en la misma máquina. Sin TCP/IP habilitado, los intentos de conexión desde GameServer y procesos relacionados fallarán silenciosamente o producirán errores de tiempo de espera engañosos.
Paso 3 — Restauración del Backup de la Base de Datos
Transfiere el archivo .bak a una ruta local en la nueva máquina (por ejemplo, C:\Backup\MuOnline_Full.bak). Abre SSMS, conéctate a la nueva instancia y ejecuta la restauración:
-- Restaurar la base de datos MuOnline en la nueva máquina
-- Ajusta las rutas físicas al directorio de datos de SQL Server en tu nueva máquina
RESTORE DATABASE [MuOnline]
FROM DISK = N'C:\Backup\MuOnline_Full.bak'
WITH
MOVE N'MuOnline' TO N'C:\MSSQL\Data\MuOnline.mdf', -- → archivo de datos principal
MOVE N'MuOnline_log' TO N'C:\MSSQL\Data\MuOnline_log.ldf', -- → log de transacciones
REPLACE, -- → sobrescribe una base de datos existente con el mismo nombre si la hay
STATS = 5; -- → progreso cada 5 por ciento
Si no estás seguro de los nombres de archivos lógicos almacenados dentro del backup, ejecuta primero esto:
RESTORE FILELISTONLY
FROM DISK = N'C:\Backup\MuOnline_Full.bak';
-- → devuelve columnas: LogicalName, PhysicalName, Type (D=datos, L=log)
Usa los valores de LogicalName de esa salida en las cláusulas MOVE anteriores.
Tras completar la restauración, verifica el conteo de filas en las tablas críticas para confirmar la integridad de los datos:
USE MuOnline;
SELECT 'AccountCharacter' AS Tabla, COUNT(*) AS Filas FROM AccountCharacter
UNION ALL
SELECT 'Character', COUNT(*) FROM Character
UNION ALL
SELECT 'warehouse', COUNT(*) FROM warehouse;
Paso 4 — Recreación de Logins SQL y Permisos
Los usuarios de la base de datos del backup son restaurados, pero los logins SQL a nivel de servidor que se mapean a ellos no lo son — residen en la base de datos master y no están incluidos en un backup de base de datos individual. Debes recrearlos manualmente.
-- Crear el login utilizado por GameServer (ajusta nombre y contraseña)
CREATE LOGIN [muonline_user] WITH PASSWORD = 'TuContraseñaSegura123!';
-- Mapearlo al usuario de base de datos restaurado desde el backup
USE MuOnline;
ALTER USER [muonline_user] WITH LOGIN = [muonline_user];
-- Confirmar que el usuario tiene el rol correcto
EXEC sp_addrolemember N'db_owner', N'muonline_user';
> [!CONSEJO] > Si usas la cuenta sa directamente en tus archivos de configuración (común en paquetes de servidor más antiguos), solo necesitas asegurarte de que el login sa esté habilitado y de que la contraseña coincida con lo que registraste durante la configuración de SQL Server. Verifica esto en Seguridad → Inicios de sesión → sa → Propiedades → Estado dentro de SSMS.
Paso 5 — Actualización de los Archivos de Configuración del Servidor
Cada componente del servidor almacena los detalles de conexión SQL en un archivo de configuración. Abre cada archivo en un editor de texto y reemplaza la dirección IP o el nombre de instancia de la máquina anterior por los de la nueva.
Archivos comunes y configuraciones a modificar:
GameServer\GameServer.ini
→ DB_IP = 127.0.0.1 (usa 127.0.0.1 si SQL corre en la misma máquina)
→ DB_Port = 1433
→ DB_ID = muonline_user
→ DB_PW = TuContraseñaSegura123!
ConnectServer\ServerInfo.xml
→ <ServerIP>IP_NUEVA_MAQUINA</ServerIP>
→ <GameServerPort>55901</GameServerPort>
JoinServer\JoinServer.ini
→ ServerIP = IP_NUEVA_MAQUINA
→ ServerPort= 55906
Busca en todos los archivos .ini, .xml y .cfg del directorio del servidor la dirección IP anterior usando una búsqueda recursiva:
findstr /s /i "IP_ANTIGUA" E:\Server\*.*
Reemplaza cada ocurrencia antes de iniciar cualquier servicio.
Paso 6 — Validación de la Migración
Inicia los servicios en el orden correcto y observa el archivo de log de cada uno antes de continuar con el siguiente:
- DataServer — espera "DB Connection OK" en su log
- JoinServer — espera "Listening on port 55906"
- ConnectServer — espera "Ready"
- GameServer — espera que todos los mapas carguen ("MapServerManager: OK")
Conéctate con un cliente de prueba, inicia sesión con una cuenta conocida y verifica las posiciones de los personajes, el inventario y el contenido del almacén. Revisa el log de eventos en busca de advertencias de tiempo de espera de SQL durante los primeros minutos de operación.
SSMS → Administración → Registros de SQL Server) durante las primeras 24 horas. Los errores de sesión huérfana o de login no mapeado aparecerán aquí y son mucho más fáciles de diagnosticar mientras la migración es reciente.Una vez confirmada la estabilidad del nuevo servidor, actualiza los registros DNS o distribuye la nueva dirección IP a los jugadores, y descomisiona la máquina anterior solo tras al menos 48 horas de operación limpia.
Perguntas frequentes
¿Puedo restaurar un backup hecho en una versión anterior de SQL Server?
En la mayoría de los casos sí, pero solo en sentido ascendente — puedes restaurar un .bak generado en SQL Server 2008 dentro de SQL Server 2019, pero no al revés. Si necesitas migrar a una versión anterior, usa el método de exportación por scripts (Tareas → Generar Scripts) en lugar de un restore directo del archivo .bak.
¿Qué hago si el restore falla con un error de 'nombre de archivo lógico'?
Este error indica que los nombres lógicos dentro del .bak no coinciden con lo que espera SQL Server. Abre el diálogo de restore, ve a la pestaña Archivos y mapea manualmente cada nombre lógico a una ruta física en la nueva máquina. También puedes ejecutar RESTORE FILELISTONLY FROM DISK = 'C:\\backup.bak' para ver los nombres exactos almacenados en el archivo.
¿Es necesario detener los servicios del servidor antes de hacer el backup?
Para obtener un backup limpio y consistente, se recomienda firmemente detener todos los procesos de GameServer, ConnectServer y JoinServer. Un backup en caliente tomado mientras el servidor está en ejecución puede capturar transacciones en estado inconsistente, lo que puede producir registros huérfanos o datos de cuenta corruptos tras la restauración.
¿Cómo actualizo las cadenas de conexión después de mover el servidor a una nueva máquina?
Cada componente que se conecta a SQL Server — GameServer, WebServer, scripts de eventos — lee su cadena de conexión desde su propio archivo de configuración (generalmente GameServer.ini, MuConfig.xml o similares). Busca en cada archivo la IP o el nombre de instancia anterior y reemplázalo por el nuevo. Reinicia cada servicio de forma individual y revisa su archivo de log antes de iniciar el siguiente.