VPS पर MS SQL Server
Windows VPS पर MS SQL Server Express कैसे इंस्टॉल करें, उसकी मेमोरी कैसे सीमित करें, एक्सेस सुरक्षित तरीके से कैसे खोलें, और बैकअप कैसे सेट करें।
23 अगस्त 2026 को अपडेट किया गया
MS SQL Server एक VPS पर Windows Server के साथ किसी सामान्य एप्लिकेशन की तरह इंस्टॉल होता है। कई लोगों के लिए मुफ़्त Express एडिशन काफ़ी है: सीमाएँ हैं प्रति डेटाबेस 10 GB, इंजन के लिए 1410 MB मेमोरी, और अधिकतम चार कोर।
टियर की ज़रूरतें
Windows Server अकेले ही लगभग 2 GB मेमोरी ले लेता है। इसमें डेटाबेस इंजन और अपना एप्लिकेशन भी जोड़ें: VDS-1 और VDS-2 Windows + MS SQL के कॉम्बो के लिए बहुत तंग हैं, काम चलाने वाला न्यूनतम VDS-3 (4 कोर / 8 GB / 120 GB) है, और लोडेड डेटाबेस के लिए VDS-4 और उससे ऊपर लें। VDS-3 पर 240 MB/s राइट सीलिंग वाली NVMe डिस्क डेटाबेस के लिए ठीक है।
इंस्टॉलेशन
Microsoft की वेबसाइट से SQL Server Express इंस्टॉलर डाउनलोड करें और साइलेंट इंस्टॉलेशन चलाएँ:
.\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 GB छोड़ते हुए:
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 4096; RECONFIGURE;
VDS-3 (8 GB) के लिए एक वाजिब वैल्यू 4096 है; VDS-5 (24 GB) के लिए 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 सिर्फ़ named pipes पर सुनता है। इसे SQL Server Configuration Manager में चालू करें, फिर सर्विस रीस्टार्ट करें।
- नामित इंस्टेंस के लिए डायनामिक पोर्ट। 1433 साफ़-साफ़ सेट करें, वरना फ़ायरवॉल नियम चूक जाएगा।
- डेटाबेस 10 GB तक बढ़ गया और लिखना बंद कर दिया। यह Express की सीमा है; इसके आगे आपको दूसरा एडिशन या डेटा क्लीनअप चाहिए।
- भूला हुआ ट्रांज़ैक्शन लॉग। Full recovery मॉडल में
.ldfफ़ाइल तब तक बढ़ती है जब तक डिस्क न खा जाए। या तो लॉग का बैकअप लें या Simple पर स्विच करें।
खाली जगह पर नज़र रखें: भरी हुई डिस्क डेटाबेस को पूरी तरह रोक देती है। सफ़ाई कैसे करें, इसके लिए लेख देखें डिस्क और पार्टीशन।