Skip to content
VDS · Windows Server

MS SQL Server на VPS

Як встановити MS SQL Server Express на Windows VPS, обмежити його пам'ять, безпечно відкрити доступ і налаштувати бекапи.

Оновлено 23 серпня 2026 р.

MS SQL Server встановлюється на VPS з Windows Server як звичайний застосунок. Безкоштовної редакції Express вистачає багатьом: обмеження — 10 ГБ на базу даних, 1410 МБ пам'яті для рушія та до чотирьох ядер.

Вимоги до тарифу

Сам Windows Server займає близько 2 ГБ пам'яті. Додайте до цього рушій бази даних і ваш застосунок: VDS-1 і VDS-2 затісні для зв'язки Windows + MS SQL, робочий мінімум — VDS-3 (4 ядра / 8 ГБ / 120 ГБ), а для навантаженої бази беріть VDS-4 і вище. Диск NVMe зі стелею запису 240 МБ/с на VDS-3 цілком підходить для бази даних.

Встановлення

Завантажте інсталятор SQL Server Express із сайту Microsoft і запустіть тихе встановлення:

.\SQLEXPR_x64_ENU.exe /q /ACTION=Install /FEATURES=SQLEngine /INSTANCENAME=SQLEXPRESS `
  /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" `
  /SECURITYMODE=SQL /SAPWD="LongPasswordHere" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS

Окремо встановіть засоби командного рядка (sqlcmd) і SQL Server Management Studio, якщо працюватимете через інтерфейс.

Перевірте:

Get-Service MSSQL$SQLEXPRESS
sqlcmd -S .\SQLEXPRESS -Q "select @@version"

Пам'ять і ядра

Типово рушій забирає всю доступну пам'ять, і система страждає. Обмежте її явно, залишивши Windows щонайменше 2 ГБ:

EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 4096; RECONFIGURE;

Для VDS-3 (8 ГБ) розумне значення — 4096; для VDS-5 (24 ГБ) — 16384.

Доступ

Відкривати порт 1433 назовні не можна. Варіанти:

  • застосунок працює на тій самій машині — залиште базу даних на localhost і взагалі не створюйте правило брандмауера;
  • потрібен зовнішній доступ — відкрийте порт лише для своїх адрес:
New-NetFirewallRule -DisplayName "MSSQL" -Direction Inbound -Protocol TCP -LocalPort 1433 `
  -RemoteAddress 203.0.113.5 -Action Allow

Краще вимкнути акаунт sa, створивши натомість іменованого користувача з правами лише на вашу базу даних:

CREATE LOGIN app WITH PASSWORD = 'LongPassword';
CREATE DATABASE shop;
USE shop; CREATE USER app FOR LOGIN app;
ALTER ROLE db_owner ADD MEMBER app;
ALTER LOGIN sa DISABLE;

Резервні копії

У нас немає автоматичних резервних копій машини, як і знімків стану в панелі — резервні копії бази даних ви робите самі. Завдання в планувальнику, раз на добу:

sqlcmd -S .\SQLEXPRESS -Q "BACKUP DATABASE shop TO DISK='C:\backup\shop.bak' WITH INIT, COMPRESSION"

Стиснення в Express недоступне — приберіть COMPRESSION. Обов'язково забирайте готовий файл з машини: копія поряд із базою даних не врятує, якщо диск буде втрачено.

Перевіряйте відновлення хоча б раз на квартал: резервна копія, яку жодного разу не відновлювали, не вважається резервною копією.

Типові помилки

  • Протокол TCP/IP не увімкнено. Типово Express слухає лише іменовані канали. Увімкніть його в SQL Server Configuration Manager, а потім перезапустіть службу.
  • Динамічний порт для іменованого екземпляра. Вкажіть 1433 явно, інакше правило брандмауера не спрацює.
  • База даних виросла до 10 ГБ і перестала приймати записи. Це обмеження Express; далі потрібна інша редакція або очищення даних.
  • Забутий журнал транзакцій. У моделі відновлення Full файл .ldf зростає, доки не з'їсть диск. Або робіть резервну копію журналу, або перейдіть на Simple.

Стежте за вільним місцем: переповнений диск повністю зупиняє базу даних. Про те, як прибирати, дивіть статтю Диски та розділи.