Always On Availability Group (AOAG) হলো SQL Server এর একটি উচ্চ উপলভ্যতা (High Availability, HA) এবং ডিজাস্টার রিকভারি (Disaster Recovery, DR) ফিচার যা SQL Server 2012 থেকে উপলব্ধ। এটি ডেটাবেসের জন্য সিঙ্ক্রোনাস রেপ্লিকেশন এবং ফেলওভার সাপোর্ট করে, যেখানে একাধিক SQL Server ইনস্ট্যান্স বা নোডের মধ্যে ডেটা সিঙ্ক্রোনাইজ করা হয় এবং ডেটাবেসের অ্যাভেলিবিলিটি নিশ্চিত করা হয়। এটি সাধারণত মিশন-ক্রিটিকাল অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয় যেখানে ডেটা লস বা ডাউনটাইম একেবারে গ্রহণযোগ্য নয়।
Always On Availability Group এর মাধ্যমে আপনি একটি প্রাইমারি ডেটাবেস এবং একাধিক সেকেন্ডারি ডেটাবেস তৈরি করতে পারেন। এই সেকেন্ডারি ডেটাবেসগুলি প্রাইমারি ডেটাবেসের সাথে সিঙ্ক্রোনাইজড থাকে, এবং প্রাইমারি ডেটাবেসে কোনো সমস্যা হলে সেকেন্ডারি ডেটাবেসে অটোমেটিক্যালি ফেলওভার করা যায়।
1. Always On Availability Group এর বৈশিষ্ট্য
Always On Availability Groups (AOAG) এর প্রধান বৈশিষ্ট্যগুলি নিচে আলোচনা করা হলো:
1.1. High Availability (HA)
Always On Availability Group প্রধানত একটি উচ্চ উপলভ্যতা সমাধান, যেখানে একাধিক সার্ভার বা নোড ব্যবহার করা হয়। ডেটাবেসের একাধিক কপি সিঙ্ক্রোনাইজ করা থাকে, যার ফলে মূল ডেটাবেসে কোনো সমস্যা হলে অন্য একটি কপি স্বয়ংক্রিয়ভাবে সক্রিয় হয়ে যায় এবং অ্যাপ্লিকেশন চালু রাখতে সহায়তা করে।
1.2. Disaster Recovery (DR)
AOAG সিস্টেমে ব্যবহৃত সেকেন্ডারি ডেটাবেস গুলি উচ্চ উপলভ্যতা ছাড়াও ডিজাস্টার রিকভারি সুবিধাও প্রদান করে। এটি একটি বিশেষ করে ডিজাস্টার পুনরুদ্ধারের জন্য কার্যকরী, যেখানে সেকেন্ডারি ডেটাবেস থেকে মূল ডেটাবেস পুনরুদ্ধার করা যায়।
1.3. Synchronous and Asynchronous Replication
- Synchronous Mode: প্রাইমারি এবং সেকেন্ডারি ডেটাবেস একই সময়ে আপডেট হয়। এক্ষেত্রে ডেটা সেকেন্ডারি সার্ভারে পৌঁছানোর পরেই ট্রানজেকশন কমপ্লিট হয়। এটি নিশ্চিত করে যে, কোনো সেকেন্ডারি সার্ভারে ডেটা হারানোর সম্ভাবনা নেই।
- Asynchronous Mode: সেকেন্ডারি ডেটাবেসে ডেটা আপডেট হওয়ার জন্য কিছু সময় বিলম্ব হতে পারে, যা মূলত দূরবর্তী অবস্থানে সেকেন্ডারি ডেটাবেস থাকলে উপযোগী।
1.4. Automatic and Manual Failover
- Automatic Failover: যখন প্রাইমারি সার্ভারে কোনো সমস্যা হয় (যেমন সার্ভার ডাউন), তখন সেকেন্ডারি ডেটাবেসটি স্বয়ংক্রিয়ভাবে প্রাইমারি হিসেবে অ্যাক্টিভ হয়ে যায় এবং অ্যাপ্লিকেশন ট্রাফিক চালু রাখে।
- Manual Failover: প্রয়োজনে, অ্যাডমিনিস্ট্রেটর নিজের হাতে failover করতে পারেন, যা নেটওয়ার্ক বা হ্যাডওয়্যার সমস্যার কারণে করা হতে পারে।
1.5. Read-Only Secondary Replicas
AOAG এর মাধ্যমে সেকেন্ডারি ডেটাবেসগুলিকে read-only হিসেবে কনফিগার করা যায়, যার ফলে তারা শুধুমাত্র রিড-অপারেশনে ব্যবহৃত হতে পারে। এই ফিচারটি রিপোর্টিং, ব্যাকআপ এবং বিশ্লেষণমূলক কাজের জন্য খুবই উপকারী, কারণ এটি মূল সার্ভারে অতিরিক্ত লোড সৃষ্টি না করে অন্যান্য কার্যক্রম পরিচালনা করতে দেয়।
2. Always On Availability Group এর আর্কিটেকচার
AOAG এর আর্কিটেকচারে মূলত দুটি কম্পোনেন্ট থাকে:
- Primary Replica: এটি মূল ডেটাবেস হোস্ট করে এবং সকল লেখার (write) অপারেশন এখানে সম্পাদিত হয়।
- Secondary Replica: এটি এক বা একাধিক সেকেন্ডারি সার্ভার হতে পারে যা প্রাইমারি ডেটাবেসের সাথে সিঙ্ক্রোনাইজড থাকে এবং রিড-অপারেশনের জন্য ব্যবহৃত হয়।
2.1. Availability Group Listener
এটি একটি ভার্চুয়াল হোস্টনেম বা IP ঠিকানা যা অ্যাপ্লিকেশন এবং ক্লায়েন্টের সাথে কনফিগার করা হয়। যখন failover ঘটে, তখন লিসেনার প্রাইমারি রিপ্লিকার থেকে সেকেন্ডারি রিপ্লিকাতে ট্রাফিক পাঠায়। এটি নিশ্চিত করে যে, ক্লায়েন্ট কেবল লিসেনারের মাধ্যমে সার্ভারের সাথে যোগাযোগ করতে পারে এবং এই লিসেনার কনফিগারেশন থেকে স্বয়ংক্রিয়ভাবে সার্ভারের অবস্থান পরিবর্তিত হয়।
2.2. Availability Mode (Synchronous vs Asynchronous)
- Synchronous Commit Mode: ডেটা প্রাইমারি এবং সেকেন্ডারি ডেটাবেসের মধ্যে একযোগে সিঙ্ক্রোনাইজ হয়। এক্ষেত্রে, সেকেন্ডারি সার্ভারটি প্রাইমারি সার্ভারের চূড়ান্ত কমিটের অপেক্ষায় থাকে।
- Asynchronous Commit Mode: সেকেন্ডারি সার্ভারগুলি ডেটা সিঙ্ক্রোনাইজ হতে সময় নিতে পারে, যা প্রধানত দূরবর্তী অবস্থানে থাকা সেকেন্ডারি সার্ভারের জন্য কার্যকরী।
3. Always On Availability Group কনফিগারেশন
Always On Availability Group কনফিগারেশন প্রক্রিয়াটি বেশ কিছু স্টেপের মাধ্যমে করা হয়। এই স্টেপগুলির মধ্যে অন্তর্ভুক্ত থাকে:
- Windows Server Failover Clustering (WSFC) Setup: AOAG সঠিকভাবে কাজ করার জন্য Windows Server Failover Clustering কনফিগার করা প্রয়োজন।
- SQL Server Instance Configuration: SSMS (SQL Server Management Studio) দিয়ে SQL Server ইন্সট্যান্সে Always On ফিচার সক্রিয় করতে হয়।
- Create Availability Group: Availability Group তৈরি করার জন্য SQL Server Management Studio এর মাধ্যমে AG তৈরি করতে হয় এবং তাতে রিপ্লিকাগুলি যোগ করতে হয়।
- Create Listener: একটি AG Listener তৈরি করতে হয় যা অ্যাপ্লিকেশনকে সর্বদা সঠিক সার্ভারে পয়েন্ট করবে।
4. Always On Availability Group এর সুবিধা ও সীমাবদ্ধতা
4.1. সুবিধাসমূহ
- উচ্চ উপলভ্যতা এবং ডিজাস্টার রিকভারি সমাধান।
- অটোমেটিক এবং ম্যানুয়াল ফেলওভার সাপোর্ট।
- Read-Only Replicas দিয়ে রিড-ওনারলি অপারেশন সহজে করা যায়।
- ডেটা ইন্টিগ্রিটি এবং নিরাপত্তা নিশ্চিত করা হয়।
4.2. সীমাবদ্ধতা
- SQL Server Enterprise Edition প্রয়োজন, SQL Server Standard Edition এ এই ফিচার পাওয়া যায় না।
- একাধিক সার্ভারে ব্যালেন্সড লোড এবং সিঙ্ক্রোনাইজেশন ব্যবস্থাপনা কিছুটা জটিল হতে পারে।
সারাংশ
Always On Availability Group SQL Server এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা উচ্চ উপলভ্যতা (HA) এবং ডিজাস্টার রিকভারি (DR) সুবিধা প্রদান করে। এটি প্রাইমারি এবং সেকেন্ডারি ডেটাবেসের মধ্যে সিঙ্ক্রোনাইজেশন এবং অটোমেটিক ফেলওভার সুবিধা প্রদান করে, যা ডেটাবেসের অব্যাহত অ্যাক্সেস নিশ্চিত করে। AOAG কনফিগারেশন এবং ব্যবহারের মাধ্যমে কোনো ডেটাবেস পরিবেশের স্থায়িত্ব এবং নির্ভরযোগ্যতা অনেক বৃদ্ধি পায়।
Read more