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