Instalar SQL Server en un VPS Windows
Esta guía explica cómo instalar SQL Server en un VPS Windows, empezando por SQL Server Express, la edición gratuita: elección de la edición, instalación con el asistente o desde la línea de comandos, SSMS, acceso por red, seguridad y copias de seguridad. Se centra en SQL Server 2025, la versión actual, sobre Windows Server 2025. SQL Server no forma parte del sistema entregado.
Elegir la edición de SQL Server
| Edición | Tamaño de una base | Memoria del búfer | Procesador | Licencia |
|---|---|---|---|---|
| Express | 50 GB por base | 1410 MB | 1 socket o 4 núcleos | Gratuita |
| Standard Developer, Enterprise Developer | Como Standard o Enterprise | Como Standard o Enterprise | Como Standard o Enterprise | Gratuita, solo para desarrollo y pruebas |
| Standard | 524 PB | 256 GB | 4 sockets o 32 núcleos | De pago |
| Enterprise | 524 PB | Máximo del sistema operativo | Máximo del sistema operativo | De pago |
Para desarrollar una aplicación, elige una edición Developer. En producción, Express basta mientras cada base se quede por debajo de 50 GB. Por encima, o para alta disponibilidad, necesitas Standard o Enterprise, con una licencia comprada a Microsoft o a un distribuidor.
Express no tiene SQL Server Agent y no comprime las copias de seguridad. La sección de copias da el método adecuado. Si tu aplicación exige SQL Server 2022 Express, Microsoft lo sigue ofreciendo para descargar: el procedimiento es el mismo, con un límite de 10 GB por base.
Preparar el VPS
| Componente | Mínimo | Recomendado |
|---|---|---|
| Memoria | 512 MB (Express), 1 GB (otras ediciones) | 1 GB (Express), 4 GB o más (otras ediciones) |
| Procesador | x64, 1,4 GHz | 2,0 GHz o más |
| Disco | 6 GB libres | Según el tamaño de tus bases |
| Sistema | Windows Server 2019 o posterior | Windows Server 2025 |
SQL Server 2025 necesita .NET Framework 4.7.2, que Windows Server 2025 ya trae. Comprueba la versión de Windows, la memoria y el espacio libre.
# Versión de Windows
Get-ComputerInfo | Select-Object WindowsProductName, OsHardwareAbstractionLayer
# Memoria instalada (en bytes)
Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum
# Espacio en disco en C:
Get-PSDrive C | Select-Object Used, Free
Crea después carpetas separadas para los datos, los registros y las copias. En un VPS de un solo disco, esto mantiene los archivos ordenados y facilita las copias.
New-Item -ItemType Directory -Path "C:\SQLData" -Force
New-Item -ItemType Directory -Path "C:\SQLLogs" -Force
New-Item -ItemType Directory -Path "C:\SQLBackups" -Force
SQLData recibe los archivos .mdf y .ndf, SQLLogs los registros .ldf y SQLBackups las copias .bak.
Descargar SQL Server
Las ediciones Express y Developer se descargan en la página de descargas de SQL Server. El instalador ofrece tres modos.
| Modo | Qué hace | Cuándo elegirlo |
|---|---|---|
| Basic | Instalación mínima con los ajustes por defecto | Una prueba rápida |
| Custom | Control de funciones, carpetas, cuentas y autenticación | Cualquier instalación duradera |
| Download Media | Descarga el soporte completo para una instalación sin conexión | Instalación sin acceso a Internet o desde la línea de comandos |
Instalar SQL Server con el asistente
Los textos del instalador se citan en inglés, el idioma del sistema entregado. Elige Custom y sigue estos pasos.
En el centro de instalación, abre Installation › New SQL Server standalone installation or add features to an existing installation.
Elige la edición gratuita que quieras, o escribe tu clave para Standard o Enterprise.
En Feature Selection, marca Database Engine Services. Deja fuera Analysis Services, Integration Services y PolyBase salvo que los necesites.
En Instance Configuration, mantén la instancia por defecto
MSSQLSERVERsi solo tendrás un SQL Server en el VPS. Una instancia con nombre, por ejemploSQLPROD, se alcanza luego con.\SQLPROD.En Server Configuration, mantén la cuenta virtual
NT Service\MSSQLSERVER. Marca Grant Perform Volume Maintenance Task privilege: crear y restaurar bases será más rápido.En Database Engine Configuration, pestaña Server Configuration, elige Mixed Mode y da a la cuenta
sauna contraseña larga y compleja. Añade tu cuenta de Windows como administrador.En la pestaña Data Directories, indica
C:\SQLDatapara los datos,C:\SQLLogspara los registros yC:\SQLBackupspara las copias.En la pestaña TempDB, prevé un archivo por núcleo, 8 como máximo. En un VPS de 4 vCPU, son 4 archivos.
Revisa el resumen y haz clic en Install.
El modo mixto permite conectarse con una cuenta SQL como sa además de las cuentas de Windows. Es práctico en un VPS fuera de un dominio.
Instalar SQL Server desde la línea de comandos
La instalación desatendida sirve para automatizar o repetir una configuración en varios VPS. Lánzala en PowerShell como administrador, desde la carpeta que contiene setup.exe (soporte descargado con Download Media). Cambia la contraseña de sa.
.\setup.exe /Q `
/ACTION=Install `
/FEATURES=SQLEngine,Replication,FullText `
/INSTANCENAME=MSSQLSERVER `
/SQLSVCACCOUNT="NT Service\MSSQLSERVER" `
/SQLSYSADMINACCOUNTS="BUILTIN\Administrators" `
/AGTSVCACCOUNT="NT Service\SQLSERVERAGENT" `
/AGTSVCSTARTUPTYPE=Automatic `
/SQLSVCINSTANTFILEINIT="True" `
/SQLUSERDBDIR="C:\SQLData" `
/SQLUSERDBLOGDIR="C:\SQLLogs" `
/SQLBACKUPDIR="C:\SQLBackups" `
/TCPENABLED=1 `
/SECURITYMODE=SQL `
/SAPWD="Ch@ngeMe-Now!" `
/IACCEPTSQLSERVERLICENSETERMS `
/SUPPRESSPRIVACYSTATEMENTNOTICE
| Parámetro | Función |
|---|---|
/Q | Modo silencioso, sin interfaz |
/FEATURES | Motor de base de datos, replicación y búsqueda de texto completo |
/SQLSYSADMINACCOUNTS | Cuentas administradoras de SQL Server, aquí los administradores locales |
/SQLSVCINSTANTFILEINIT | Acelera la creación de los archivos de base de datos |
/TCPENABLED=1 | Activa TCP/IP desde la instalación |
/SECURITYMODE=SQL, /SAPWD | Modo mixto y contraseña de la cuenta sa |
/IACCEPTSQLSERVERLICENSETERMS, /SUPPRESSPRIVACYSTATEMENTNOTICE | Aceptación de la licencia y del aviso de privacidad, obligatoria en modo silencioso |
El resultado está en C:\Program Files\Microsoft SQL Server\170\Setup Bootstrap\Log\Summary.txt. La carpeta 170 corresponde a SQL Server 2025 y 160 a SQL Server 2022.
Instalar SSMS y conectarte
SQL Server Management Studio (SSMS), la interfaz de administración, se instala aparte. Descarga la última versión desde la página de SSMS de Microsoft e instálala con las opciones por defecto.
Al abrirlo, escribe localhost como nombre del servidor (o .\SQLPROD para una instancia con nombre) y elige la autenticación de Windows o la de SQL Server con la cuenta sa. Sin SSMS, sqlcmd consulta el servidor desde la línea de comandos.
sqlcmd -S localhost -Q "SELECT @@VERSION"
Abrir el acceso por red
Por defecto, SQL Server solo acepta conexiones locales. Para que otra máquina se conecte, activa TCP/IP.
Abre SQL Server Configuration Manager desde el menú Inicio.
Ve a SQL Server Network Configuration › Protocols for MSSQLSERVER.
Haz clic derecho en TCP/IP y luego en Enable.
Haz doble clic en TCP/IP, pestaña IP Addresses. Al final del todo, en IPAll, pon TCP Port en
1433o en otro puerto.Reinicia el servicio SQL Server.
Abre después el puerto en el firewall de Windows, mejor solo para una dirección: la de tu equipo o la de tu servidor de aplicaciones.
# Puerto 1433 abierto a todos (a evitar en producción)
New-NetFirewallRule -DisplayName "SQL Server (TCP 1433)" `
-Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow
# Puerto 1433 reservado a una dirección (recomendado)
New-NetFirewallRule -DisplayName "SQL Server - Allowed IP" `
-Direction Inbound -Protocol TCP -LocalPort 1433 `
-RemoteAddress "203.0.113.10" -Action Allow
Comprueba la instalación: el puerto responde, el servicio funciona y una consulta pasa.
Test-NetConnection -ComputerName localhost -Port 1433
Get-Service -Name MSSQLSERVER
sqlcmd -S localhost -Q "SELECT @@VERSION, GETDATE() AS ServerDate"
La guía Cómo abrir un puerto en el firewall de un VPS Windows explica las reglas reservadas a una dirección. Para conectar un servidor de aplicaciones sin pasar por Internet, usa la red privada entre VPS.
Proteger SQL Server
Desactiva o renombra la cuenta
sa, primer objetivo de los ataques de fuerza bruta.Crea una cuenta SQL por aplicación, con permisos solo sobre su base.
Reserva el puerto SQL a las direcciones conocidas, como se ha visto.
Excluye las carpetas SQL del análisis en tiempo real de Microsoft Defender.
Deja desactivadas las funciones de riesgo como
xp_cmdshell.En SSMS, propiedades del servidor, página Security, pon Login auditing en Both failed and successful logins.
-- Desactivar xp_cmdshell
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE;
# Exclusiones de Microsoft Defender para las carpetas SQL
Add-MpPreference -ExclusionPath "C:\SQLData","C:\SQLLogs","C:\SQLBackups"
Hacer copias de las bases
Este script T-SQL guarda una base en un archivo con fecha. Sustituye AppDb por el nombre de tu base.
DECLARE @file NVARCHAR(260) = N'C:\SQLBackups\AppDb_' + CONVERT(NVARCHAR(8), GETDATE(), 112) + N'.bak';
-- En Standard o Enterprise, añade COMPRESSION a la cláusula WITH
BACKUP DATABASE [AppDb] TO DISK = @file WITH STATS = 10;
Con SQL Server Agent (Standard, Enterprise, Developer)
Inicia el agente y ponlo en inicio automático.
Set-Service -Name SQLSERVERAGENT -StartupType Automatic
Start-Service -Name SQLSERVERAGENT
En SSMS, bajo SQL Server Agent, crea un trabajo con New Job. Añade un paso de tipo T-SQL con el script y luego una programación diaria, por ejemplo a las 2:00.
Con el Programador de tareas (Express)
Express no tiene agente. Guarda el script como C:\Scripts\sql-backup.sql y programa sqlcmd. La cuenta de la tarea debe ser administradora de SQL Server; el comando pide su contraseña.
schtasks /create /tn "SQL-Backup-AppDb" /tr "sqlcmd -S localhost -E -i C:\Scripts\sql-backup.sql" /sc DAILY /st 02:00 /ru Administrator /rp
Estos archivos se quedan en el VPS. Para copiarlos a otro sitio, sigue la guía Copia de seguridad de un VPS Windows.
Resolver los errores habituales
El servicio SQL Server no arranca
A menudo el puerto 1433 ya está ocupado, o la cuenta del servicio no tiene permisos en las carpetas de datos. Comprueba el puerto y lee el mensaje exacto en el Visor de eventos, registro Application, origen MSSQLSERVER.
netstat -ano | findstr :1433
No se puede conectar a localhost
Comprueba con Get-Service MSSQLSERVER que el servicio funciona, que TCP/IP está activado en SQL Server Configuration Manager y que usas el nombre correcto. Una instancia con nombre se alcanza con .\NOMBREINSTANCIA, no con localhost.
Login failed for user 'sa'
O el modo mixto no está activado, o la cuenta sa está desactivada. En SSMS, propiedades del servidor, página Security, elige SQL Server and Windows Authentication mode y reinicia el servicio. Para reactivar sa:
ALTER LOGIN sa ENABLE;
ALTER LOGIN sa WITH PASSWORD = 'Ch@ngeMe-Now!';
Un reinicio pendiente bloquea la instalación
Windows tiene cambios de nombre de archivos pendientes. Si el valor de abajo existe, reinicia el VPS y vuelve a lanzar la instalación.
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" `
-Name PendingFileRenameOperations -ErrorAction SilentlyContinue
Falta un componente de .NET
Windows Server 2025 trae .NET Framework 4.8.1, suficiente para SQL Server 2025. Si un componente antiguo pide .NET Framework 3.5, instálalo, con la ISO de Windows Server como origen si hace falta. Si no, descarga .NET Framework de Microsoft.
Install-WindowsFeature Net-Framework-Core
Install-WindowsFeature Net-Framework-Core -Source "D:\sources\sxs"
El rendimiento baja
En Standard o Enterprise, añade archivos TempDB hasta tener uno por núcleo (8 como máximo). Express usa un solo archivo TempDB.
-- Ejemplo para 4 núcleos
ALTER DATABASE tempdb ADD FILE (NAME = tempdev2, FILENAME = 'C:\SQLData\tempdb2.mdf', SIZE = 64MB);
ALTER DATABASE tempdb ADD FILE (NAME = tempdev3, FILENAME = 'C:\SQLData\tempdb3.mdf', SIZE = 64MB);
ALTER DATABASE tempdb ADD FILE (NAME = tempdev4, FILENAME = 'C:\SQLData\tempdb4.mdf', SIZE = 64MB);
Limita también la memoria de SQL Server para dejar al menos un 20 % a Windows. En un VPS de 8 GB, son unos 6400 MB.
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max server memory', 6400; RECONFIGURE;
Si no marcaste el privilegio en la instalación, concede Perform volume maintenance tasks a la cuenta del servicio en secpol.msc.
¿Necesitas ayuda?
Abre un ticket desde Tickets › Abrir un ticket, o desde el recuadro Contactar con el soporte al pie de la ficha del VPS. En el campo Servicio afectado, elige el VPS para que el equipo gane tiempo. También puedes preguntar en el Discord de OuiHeberg.
Windows Server 2025 con licencia incluida, Escritorio remoto y gestión desde el área de cliente.
Ver ofertas →