Log Shipping এবং Failover Cluster Management দুটি অত্যন্ত গুরুত্বপূর্ণ ডেটাবেস রিপ্লিকেশন এবং ডেটা রিকভারি কৌশল, যা ডেটাবেসের উচ্চ প্রবণতা, রিলায়েবিলিটি, এবং ডিসাস্টার রিকভারি নিশ্চিত করতে ব্যবহৃত হয়। এগুলো মূলত SQL Server বা অন্যান্য ডেটাবেস ম্যানেজমেন্ট সিস্টেমে ডেটার নিরাপত্তা এবং অখণ্ডতা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
1. Log Shipping
Log Shipping হল একটি ডেটাবেস রিপ্লিকেশন কৌশল যা ডেটাবেসের transaction logs কপি এবং একাধিক সার্ভারে প্রেরণ করে। এটি ডেটাবেসের ডিসাস্টার রিকভারি (disaster recovery) পরিকল্পনার একটি অংশ হিসেবে ব্যবহৃত হয়, যা নিশ্চিত করে যে প্রাইমারি সার্ভারের ডেটা সেকেন্ডারি সার্ভারে সিঙ্ক্রোনাইজ থাকবে এবং প্রাইমারি সার্ভারে কোনো সমস্যা হলে সেকেন্ডারি সার্ভার ব্যবহার করা যাবে।
Log Shipping এর মূল ধারণা:
- Primary Server: মূল সার্ভার, যেখানে ডেটাবেসের লেখাগুলি তৈরি হয়।
- Secondary Server: এক বা একাধিক রিড-অনলি সার্ভার যা প্রাইমারি সার্ভারের লগ ফাইল নিয়ে সিঙ্ক্রোনাইজ হয় এবং ডেটা রিকভারি বা রিপোর্টিং-এর জন্য ব্যবহৃত হয়।
- Standby Server: সেকেন্ডারি সার্ভার যদি প্রাইমারি সার্ভারের ব্যর্থতার পরও কার্যকরী থাকে, তবে এটি স্ট্যান্ডবাই সার্ভার হিসেবে ব্যবহৃত হতে পারে।
Log Shipping-এর কাজ করার পদ্ধতি:
- Transaction Log Backup: প্রাইমারি সার্ভারে ডেটাবেসের ট্রানজেকশন লগের ব্যাকআপ নেওয়া হয়।
- Log Copy: ট্রানজেকশন লগের ব্যাকআপটি সেকেন্ডারি সার্ভারে কপি করা হয়।
- Log Restore: সেকেন্ডারি সার্ভারে ট্রানজেকশন লগটি রিস্টোর করা হয়, যাতে এটি প্রাইমারি সার্ভারের ডেটার সাথে সিঙ্ক্রোনাইজ থাকে।
Log Shipping-এর সুবিধা:
- Disaster Recovery: প্রাইমারি সার্ভারে কোনো সমস্যা হলে সেকেন্ডারি সার্ভারকে সহজেই পিভট করা যায়।
- High Availability: সেকেন্ডারি সার্ভারে ডেটার সর্বশেষ অবস্থান পাওয়া যায়।
- Data Integrity: ট্রানজেকশন লগের মাধ্যমে ডেটা ক্ষতি কমানো যায় এবং পুনরুদ্ধারের সময় সঠিকতা নিশ্চিত করা যায়।
Log Shipping-এ ব্যবহৃত কিছু SQL কমান্ড:
Backup Transaction Log:
BACKUP LOG [DatabaseName] TO DISK = 'C:\Backups\TransactionLogs\log_backup.trn';Restore Transaction Log on Secondary Server:
RESTORE LOG [DatabaseName] FROM DISK = 'C:\Backups\TransactionLogs\log_backup.trn' WITH NORECOVERY;
Log Shipping-এর চ্যালেঞ্জ:
- Data Latency: এটি বাস্তব সময়ে ডেটা সিঙ্ক্রোনাইজ না হওয়ার কারণে কিছু ডেটা দেরিতে রিফ্লেক্ট হতে পারে।
- Manual Failover: প্রাইমারি সার্ভার ডাউন হলে, সেকেন্ডারি সার্ভারকে ম্যানুয়ালি পিভট বা স্ট্যান্ডবাই মোডে আনা হয়।
2. Failover Cluster Management
Failover Clustering হল একটি হাই-এভেইলেবিলিটি কৌশল যা সার্ভারের একাধিক নোডকে যুক্ত করে এবং একটি সমস্যা বা ব্যর্থতার ঘটনার পর অন্য নোডে স্বয়ংক্রিয়ভাবে সিস্টেমের কাজ চালিয়ে যেতে সক্ষম হয়। এটি মূলত ডেটাবেসের সার্ভার নিরবচ্ছিন্নভাবে চলমান রাখতে সাহায্য করে।
Failover Cluster এর মূল ধারণা:
- Clustered Servers: একাধিক সার্ভার (নোড) যা হোস্টিং ডেটাবেস সার্ভিসের জন্য একসাথে কাজ করে।
- Active Node: এটি সেই নোড যা বর্তমানে কাজ করছে, অর্থাৎ সকল ডেটাবেস সার্ভিসের প্রাথমিক দায়িত্বে রয়েছে।
- Passive Node: এটি একটি ব্যাকআপ নোড যা প্রাইমারি নোডের সমস্যা হলে সক্রিয় হয়।
- Quorum: কনফিগারেশন নিশ্চিত করে যে ক্লাস্টারে একটি নির্দিষ্ট সংখ্যক নোড সক্রিয় থাকে, যাতে ডিসি (Data Consistency) বজায় থাকে।
Failover Clustering এর কাজ করার পদ্ধতি:
- Cluster Configuration: একাধিক সার্ভার নোডকে ক্লাস্টারে যুক্ত করা হয়।
- Active Node Assignment: ক্লাস্টারের এক বা একাধিক সার্ভারে ডেটাবেস রান করে, এবং একটি নোডই সক্রিয় থাকে।
- Health Monitoring: ক্লাস্টার কনফিগারেশন স্বয়ংক্রিয়ভাবে সক্রিয় নোডের স্বাস্থ্য পরীক্ষা করে। যদি কোনো নোডে সমস্যা হয়, তবে এটি তাত্ক্ষণিকভাবে অন্য নোডে পিভট করে।
- Failover Process: প্রাইমারি নোডে কোনো সমস্যা হলে, ক্লাস্টারটি সেকেন্ডারি নোডে ডেটাবেস ট্রান্সফার করে, যাতে সিস্টেমের কাজ চালু থাকে।
Failover Cluster এর সুবিধা:
- High Availability: ক্লাস্টার কনফিগারেশন সার্ভারের ব্যর্থতার পরও ডেটাবেস সার্ভিস চালু রাখতে সহায়তা করে।
- Automatic Failover: একটি নোড ব্যর্থ হলে অন্য নোডে ট্রান্সফার হওয়া নিশ্চিত করে।
- Data Protection: একাধিক সার্ভারে ডেটা স্টোর করা থাকে, তাই হারানো ডেটা বা সিস্টেম ডাউনটাইমের সম্ভাবনা কম থাকে।
Failover Clustering কনফিগারেশন:
SQL Server failover cluster তৈরি করতে SQL Server setup-এ SQL Server Failover Cluster Instance নির্বাচন করতে হয়।
Log Shipping এবং Failover Cluster Management এর মধ্যে পার্থক্য:
| প্যারামিটার | Log Shipping | Failover Clustering |
|---|---|---|
| বিকল্প নোড | ম্যানুয়ালি failover প্রয়োজন | স্বয়ংক্রিয় failover |
| ডেটা সিঙ্ক্রোনাইজেশন | লেটেন্সি থাকতে পারে (ডেটা কিছুটা পিছিয়ে থাকতে পারে) | রিয়েল-টাইম সিঙ্ক্রোনাইজেশন |
| সার্ভারের সংখ্যা | একটি প্রাইমারি এবং এক বা একাধিক সেকেন্ডারি সার্ভার | একাধিক নোডের মধ্যে ক্লাস্টার |
| ব্যবহার | ডিসাস্টার রিকভারি | হাই-এভেইলেবিলিটি এবং ক্লাস্টারিং |
| কনফিগারেশন সহজতা | তুলনামূলকভাবে সহজ | জটিল কনফিগারেশন এবং সার্ভার সেটআপ প্রক্রিয়া |
সারাংশ:
- Log Shipping একটি ভাল ডিসাস্টার রিকভারি কৌশল, যেখানে Failover Clustering ডেটাবেসের হাই-এভেইলেবিলিটি নিশ্চিত করে।
- Log Shipping ব্যাকআপ এবং সেকেন্ডারি সার্ভারে ডেটা সিঙ্ক্রোনাইজের মাধ্যমে কাজ করে, যেখানে Failover Clustering পুরো ক্লাস্টার ডাউনটাইমের ঝুঁকি কমিয়ে দেয় স্বয়ংক্রিয় failover দ্বারা।
Read more