VPS-এ MS SQL Server
Windows VPS-এ MS SQL Server Express কীভাবে ইনস্টল করবেন, এর মেমোরি সীমিত করবেন, নিরাপদে অ্যাক্সেস খুলবেন, এবং ব্যাকআপ সেট করবেন।
আপডেট: ২৩ আগস্ট, ২০২৬
MS SQL Server একটি VPS-এ Windows Server-এর উপর সাধারণ অ্যাপ্লিকেশনের মতোই ইনস্টল হয়। অনেকের জন্যই ফ্রি Express সংস্করণ যথেষ্ট: সীমাগুলো হলো প্রতি ডেটাবেসে 10 GB, ইঞ্জিনের জন্য 1410 MB মেমোরি এবং সর্বোচ্চ চারটি কোর।
টিয়ার প্রয়োজনীয়তা
Windows Server নিজেই প্রায় 2 GB মেমোরি নেয়। এর সাথে ডেটাবেস ইঞ্জিন ও আপনার অ্যাপ্লিকেশন যোগ করুন: Windows + MS SQL কম্বলের জন্য VDS-1 এবং VDS-2 খুবই সংকীর্ণ, কার্যকর ন্যূনতম হলো 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-এ সুইচ করুন।
খালি জায়গার দিকে নজর রাখুন: ডিস্ক ভরে গেলে ডেটাবেস সম্পূর্ণ বন্ধ হয়ে যায়। পরিষ্কার করার উপায় জানতে দেখুন ডিস্ক ও পার্টিশন নিবন্ধটি।