Skip to content
VDS · Windows Server

MS SQL Server na VPS-u

Kako da instaliraš MS SQL Server Express na Windows VPS, ograničiš mu memoriju, bezbedno otvoriš pristup i podesiš bekape.

Ažurirano 23. avgust 2026.

MS SQL Server se instalira na VPS sa Windows Serverom kao obična aplikacija. Besplatna Express edicija je dovoljna za mnoge: ograničenja su 10 GB po bazi, 1410 MB memorije za engine i do četiri jezgra.

Zahtevi po tieru

Sam Windows Server zauzima oko 2 GB memorije. Na to dodaj engine baze i svoju aplikaciju: VDS-1 i VDS-2 su pretesni za kombinaciju Windows + MS SQL, radni minimum je VDS-3 (4 jezgra / 8 GB / 120 GB), a za opterećenu bazu uzmi VDS-4 i više. NVMe disk sa ograničenjem pisanja od 240 MB/s na VDS-3 je sasvim u redu za bazu.

Instalacija

Preuzmi SQL Server Express installer sa Microsoft sajta i pokreni tihu instalaciju:

.\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

Odvojeno instaliraj alatke komandne linije (sqlcmd) i SQL Server Management Studio ako ćeš raditi preko interfejsa.

Proveri:

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

Memorija i jezgra

Podrazumevano engine uzima svu dostupnu memoriju, a sistem trpi. Ograniči je eksplicitno, ostavljajući Windowsu najmanje 2 GB:

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

Za VDS-3 (8 GB) razumna vrednost je 4096; za VDS-5 (24 GB) 16384.

Pristup

Ne smeš da otvoriš port 1433 ka spolja. Opcije:

  • aplikacija radi na istoj mašini — ostavi bazu na localhost i ne pravi firewall pravilo uopšte;
  • potreban ti je spoljni pristup — otvori port samo ka svojim adresama:
New-NetFirewallRule -DisplayName "MSSQL" -Direction Inbound -Protocol TCP -LocalPort 1433 `
  -RemoteAddress 203.0.113.5 -Action Allow

Bolje je da onemogućiš sa nalog i umesto njega napraviš imenovanog korisnika sa pravima samo na svoju bazu:

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;

Bekapovi

Nemamo automatske bekapove mašine, niti snimke stanja u panelu — bekapove baze praviš sam. Zadatak u scheduleru, jednom dnevno:

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

Kompresija nije dostupna u Express-u — ukloni COMPRESSION. Obavezno preuzmi gotov fajl sa mašine: kopija pored baze te neće spasiti ako se disk izgubi.

Proveri restauriranje najmanje jednom u tri meseca: bekap koji nikada nije restauriran ne računa se kao bekap.

Česte greške

  • TCP/IP protokol nije omogućen. Podrazumevano Express sluša samo na named pipes. Omogući ga u SQL Server Configuration Manager-u, pa restartuj servis.
  • Dinamički port za imenovanu instancu. Postavi 1433 eksplicitno, inače će firewall pravilo promašiti.
  • Baza je narasla na 10 GB i prestala da prima upise. To je Express ograničenje; preko toga ti treba druga edicija ili čišćenje podataka.
  • Zaboravljen transaction log. U Full recovery modelu .ldf fajl raste dok ne pojede disk. Ili bekapuj log ili pređi na Simple.

Pazi na slobodan prostor: pun disk potpuno zaustavlja bazu. Kako da očistiš, pogledaj u članku Diskovi i particije.