এই পোস্টে আলোচনা করা হয়েছে কীভাবে লগ শিপিং সেট আপ করতে হয়, যা একটি ডিজাস্টার রিকভারি (DR) সমাধান, মৌজুदा Microsoft® SQL Server® AlwaysOn-কনফিগার্ড ডেটাবেসের সাথে।
ভূমিকা
AlwaysOn অভেইলেবিলিটি গ্রুপ (AG) ফিচার হল একটি হাই-অভেইলেবিলিটি এবং ডিজাস্টার রিকভারি সমাধান যা ডেটাবেস মিররিং-র একটি এন্টারপ্রাইজ-লেভেল বিকল্প প্রদান করে। SQL Server 2012 (11.x)-এ চালু করা হয়েছে, AlwaysOn AG-ها 엔্টারপ্রাইজের জন্য ব্যবহারকারী ডেটাবেসের একটি সেটের উপলব্ধতা সর্বাধিক করে। AG-ها একটি диск্রিট সেট ব্যবহারকারী ডেটাবেসের জন্য একটি ফেইল-ওভার এনভায়রনমেন্ট সাপোর্ট করে, যাকে অভেইলেবিলিটি ডেটাবেস বলা হয়, যা একসাথে ফেইল-ওভার করে। এছাড়া এগুলো একটি সেট রিড-রাইট প্রাইমারি ডেটাবেস এবং এক থেকে আট সেট সংশ্লিষ্ট সেকেন্ডারি ডেটাবেস সাপোর্ট করে। ঐচ্ছিকভাবে, AG-ها সেকেন্ডারি ডেটাবেসগুলিকে রিড-অনলি অ্যাক্সেস এবং কিছু ব্যাকআপ অপারেশনের জন্য উপলব্ধ করতে পারে।
SQL Server লগ শিপিং আপনাকে একটি প্রাইমারি ডেটাবেস থেকে প্রাইমারি সার্ভার ইনস্ট্যান্সে ট্রানজ্যাকশন লগ ব্যাকআপ এক বা একাধিক সেকেন্ডারি ডেটাবেসে আলাদা সেকেন্ডারি সার্ভার ইনস্ট্যান্সে স্বয়ংক্রিয়ভাবে পাঠাতে সক্ষম করে। ট্রানজ্যাকশন লগ ব্যাকআপগুলো প্রতিটি সেকেন্ডারি ডেটাবেসে আলাদাভাবে প্রয়োগ করা হয়।
AlwaysOn লগ শিপিং কেন দরকার হতে পারে
মান লইয়া যাক, আপনার প্রাইমারি রেপ্লিকা সার্ভার এবং আপনার সেকেন্ডারি রেপ্লিকার মাঝপথে AlwaysOn সেটআপ কনফিগার করা আছে এবং AlwaysOn মেন ডেটা সেন্টারে ব্যবহৃত হচ্ছে। আপনাকে লগ শিপিং ব্যবহার করতে হতে পারে যদি আপনি DR সাইটে প্রয়োজনীয় Windows Server Failover Cluster (WSFC) কনফিগারেশন প্রসারিত না করতে পারেন। কারণগুলো হতে পারে:
- ইনফ্রাস্ট্রাকচার বা স্টাফ ভিন্ন সাইটের মাঝপথে WSFC কনফিগারেশন রক্ষা করতে পারে না।
- আপনি DR সাইটের টার্গেট সার্ভারকে WSFC কনফিগারেশনে লিভারেজ করতে পারবেন না কারণ এটি ইতিমধ্যে অন্য একটি WSFC কনফিগারেশনের অংশ।
- রিকভারি পয়েন্ট অবজেক্টিভ (RPO) এবং রিকভারি টাইম অবজেক্টিভ (RTO) সম্পর্কে সার্ভিস লেভেল অ্যাগ্রিমেন্ট (SLA) ম্যানুয়াল এরর থেকে দ্রুত রিকভারি বাধ্য করে, যা শুধু হাই অভেইলেবিলিটি (HA) এবং DR কৌশলের অংশ হিসেবে ডিলেয়ড রিকভারি ট্রানজ্যাকশন লগ ব্যাকআপ রিস্টোর করে একটি ইনস্ট্যান্সে সম্ভব।
অতএব, আপনাকে টার্গেট সার্ভার সরবরাহ করতে হবে, যা DR সাইটে আছে, লগ শিপিং ব্যবহার করে মেন সাইটে বর্তমান প্রাইমারি-তে কिये गये ব্যাকআপ থেকে ট্রানজ্যাকশন লগ শিপ করে।
লগ শিপিং ব্যবহারের পূর্বশর্ত
লগ শিপিং সেট আপ করার আগে, নিশ্চিত করুন আপনি নিচের পূর্বশর্তগুলো পূরণ করছেন:
- প্রাইমারি ডেটাবেসকে ফুল বা বাল্ক-লগড রিকভারি মডেল ব্যবহার করতে হবে। ডেটাবেসকে সিম্পল রিকভারি-এ স্যুইচ করলে লগ শিপিং কাজ বন্ধ করবে।
- লগ শিপিং কনফিগার করার আগে, আপনাকে একটি শেয়ার্ড পাথ তৈরি করতে হবে যাতে ট্রানজ্যাকশন লগ ব্যাকআপ সেকেন্ডারি সার্ভারের কাছে উপলব্ধ থাকে।
- লগ-শিপিং স্টোরড প্রোসিজারগুলোর জন্য sysadmin ফিক্সড সার্ভার রোলে সদস্যতা প্রয়োজন।
- ব্যাকআপ শেয়ার্ড পাথের SQL Server সার্ভিস অ্যাকাউন্টের রিড এবং রাইট পারমিশন থাকতে হবে।
লগ শিপিং DR সমাধান কনফিগার করার উদাহরণ
এই উদাহরণে, আমরা ইতিমধ্যে PRIMEHEAD নামে প্রাইমারি রেপ্লিকা সার্ভার এবং HEAD2 নামে সেকেন্ডারি রেপ্লিকার মাঝপথে AlwaysOn সেটআপ করেছি, নিচের ছবিতে দেখানো মতে:
এই সেকশনটি একটি AlwaysOn AG-র অংশ যা ডেটাবেসের ওপর লগ শিপিং কনফিগার করার ধাপে ধাপে সমাধান প্রদান করে।
ধাপ ১
AdventureWork2014 ডেটাবেসের জন্য PRIMEHEAD এবং DR সার্ভার HEAD3-এর মাঝপথে লগ শিপিং কনফিগার করুন।
ডেটাবেসে লগ শিপিং কনফিগার করার সময়, AdventureWork2014 ডেটাবেসের একটি ফুল ব্যাকআপ নিন এবং HEAD3-এ নন-রিকভারি মোডে রিস্টোর করুন। PRIMEHEAD-এ একটি শেয়ার্ড ফোল্ডার তৈরি করুন যেখানে লগ ব্যাকআপ সংরক্ষিত হবে যা LSCopy (লগ শিপিং) জব ব্যবহার করে।
ধাপ ২
ডেটাবেসের ওপর রাইট-ক্লিক করুন, Properties সিলেক্ট করুন, এবং PRIMEHEAD-এ বাম দিক থেকে Transaction Log Shipping অপশনে ক্লিক করুন। তারপর হাইলাইট করা Enable this as a primary database in a log shipping configuration চেকবক্সে ক্লিক করুন নিচের ছবিতে দেখানো মতে:
ধাপ ৩
Backup Setting-এ ক্লিক করুন LS Backup অপশন কনফিগার করতে। নিচের ছবিতে দেখানো মতে LS Backup-এর জন্য নেটওয়ার্ক শেয়ার্ড পাথ সিলেক্ট করুন:
ধাপ ৪
এই মুহূর্তে, আপনি আপনার প্রয়োজন অনুযায়ী LS Backup শিডিউল করতে পারেন। যাঁব, এই সিনেরিওতে, ডিফল্ট সেটিংস ব্যবহার করুন।
ধাপ ৫
DR সার্ভার যোগ করতে, নিচের ছবিতে দেখানো মতে Add-এ ক্লিক করুন:
ধাপ ৬
HEAD3, DR সার্ভারের সাথে সংযোগ করতে Connect-এ ক্লিক করুন, নিচের ছবিতে দেখানো মতে:
ধাপ ৭
Initialize Secondary Database ট্যাবে, তৃতীয় অপশন সিলেক্ট করুন কারণ ডেটাবেস ইতিমধ্যে HEAD3-এ ইনিশিয়ালাইজড আছে।
ধাপ ৮
Copy Files ট্যাবে ক্লিক করুন। Destination folder for copied files বক্সে, वो পাথ টাইপ করুন যেখানে ট্রানজ্যাকশন লগ ব্যাকআপ কপি হবে। এই সিনেরিওতে, পাথ হিসেবে C:\LSCopyAlwaysOn ব্যবহার করুন, নিচের ছবিতে দেখানো মতে:
ধাপ ৯
Restore Transaction Log ট্যাবে, Database state when restoring backups এর অধীনে, No recovery mode বা Standby mode নির্বাচন করুন, নিচের ছবিতে দেখানো মতে:
এই উদাহরণে, আমরা No recovery mode সিলেক্ট করেছি, যা ইঙ্গিত করে DR ডেটাবেস অ্যাক্সেসযোগ্য নয়। আপনি যদি Standby Mode সিলেক্ট করেন, তবে DR ডেটাবেস এন্ড ইউজারকে রিড-অনলি মোডে উপলব্ধ থাকবে।
ধাপ ১০
লগ শিপিং শুরু করতে OK-এ ক্লিক করুন।
নিচের স্ক্রিন প্রদর্শিত হবে:
ধাপ ১১
লগ শিপিং স্ট্যাটাস চেক করতে, DR সার্ভার HEAD3 ইনস্ট্যান্সের ওপর রাইট-ক্লিক করুন, এবং Reports->Standard reports—>Transactional Log Shipping Status সিলেক্ট করুন। যদি নিচের স্ক্রিন প্রদর্শিত হয়, তবে লগ শিপিং সুস্থ এবং প্রত্যাশা অনুযায়ী কাজ করছে।
যদি PRIMEHEAD এবং HEAD2-এর মাঝপথে AG ফেইল-ওভার ঘটে, তবে লগ শিপিং বাধা পায় যতক্ষণ না আপনি AG স্পেসিফিকেশন বিবেচনা করে এটিকে কনফিগার করেন।
এখন আপনি HEAD2 থেকে HEAD3-এ লগ শিপিং কনফিগার করতে পারেন, যা ভবিষ্যতে AG রেপ্লিকার মাঝপথে ফেইল-ওভার হলেও লগ শিপিং ফাংশনালিটিতে কোন প্রভাব ফেলবে না। লগ ব্যাকআপ সবসময় একই পাথ বা লোকেশনে হবে, যেসব রেপ্লিকা প্রাইমারি হিসেবে সার্ভ করছে তার নির্বিশেষে।
রেপ্লিকার মাঝপথে ফেইল-ওভার শুরু করার আগে, নিচের ধাপগুলো সম্পন্ন করুন:
প্রাইমারি রেপ্লিকায় LS ব্যাকআপ জব এক্সিকিউট করুন এবং জবটি ডিজেবল করুন।
সেকেন্ডারি রেপ্লিকায় LS কপি এবং রিস্টোর জব এক্সিকিউট করুন এবং তারপর ডিজেবল করুন।
এটি করতে, AG-র ওপর রাইট-ক্লিক করুন এবং নিচের ছবিতে দেখানো মতে ফেইল-ওভার অপশন সিলেক্ট করুন:
আপনি নিচের T-SQL কমান্ডগুলো ব্যবহার করে ম্যানুয়ালি AG ফেইল-ওভার ট্রিগার করতে পারেন:
USE master; GO ALTER AVAILABILITY GROUP [AGName] FAILOVER GO
ফেইল-ওভার সম্পন্ন হলে, নিচের উইন্ডো প্রদর্শিত হবে:
ধাপ ১২
PRIMEHEAD এবং HEAD2-এর মাঝপথে AG ফেইল-ওভার হওয়ার পর, বর্তমান প্রাইমারি ইনস্ট্যান্স HEAD2।
একই ধাপগুলো অনুসরণ করুন বর্তমান প্রাইমারি সার্ভার বা নোড, HEAD2 থেকে DR সার্ভার, HEAD3-এ লগ শিপিং কনফিগার করতে। লগ শিপিং কনফিগার করার সময়, একই শেয়ার্ড পাথ বেছে নিন যা PRIMEHEAD এবং HEAD3-এর মাঝপথে LS কনফিগারেশনের সময় ব্যবহার করা হয়েছিল, \Avail2017\lsbackup।
ধাপ ১৩
HEAD2, বর্তমান প্রাইমারি, এবং HEAD3-এর মাঝপথে লগ শিপিং সম্পন্ন হলে, HEAD2-এ একটি LS ব্যাকআপ জব তৈরি হয়, এবং HEAD3-এ LS কপি এবং LS রিস্টোর জবের আরেক সেট তৈরি হয়।
একবার আর AG রেপ্লিকার মাঝপথে ফেইল-ওভার শুরু করুন। ফেইল-ওভার শুরু করার আগে, নিচের ধাপগুলো সম্পন্ন করুন নিশ্চিত করতে:
প্রাইমারি (HEAD2)-এ LS ব্যাকআপ জব এক্সিকিউট করুন এবং জবটি ডিজেবল করুন।
সেকেন্ডারি (HEAD3)-এ LS কপি এবং রিস্টোর জব এক্সিকিউট করুন এবং তারপর ডিজেবল করুন।
ধাপ ১৪
শেষ ফেইল-ওভার হওয়ার পর, বর্তমান প্রাইমারি PRIMEHEAD, HEAD2 সেকেন্ডারি রেপ্লিকা, এবং HEAD3 DR সার্ভার। যেহেতু LS ব্যাকআপ জব দুটি সার্ভারে (প্রাইমারি এবং সেকেন্ডারি) রয়েছে, আপনাকে PRIMEHEAD এবং HEAD2-র LS ব্যাকআপ জব মডিফাই করতে হবে যাতে এটি শুধু বর্তমান প্রাইমারি থেকে লগ ব্যাকআপ নেয়।
এটি করতে, জব স্টেপ ১-এ নিচের কোড যোগ করুন:
Declare @dbname as varchar(20) Set @dbname=’AdventureWorks2014’ If sys.fn_hadr_backup_is_preferred_replica (@dbname)<>1 begin RAISERROR (50005,-- Message id, 16, -- Severity, 1, --State, N’This is not the primary server backup is rolled back’); end
নিচের ছবিটি এটিকে ইলাস্ট্রেট করে:
উপরোক্ত পরিবর্তন করার পর, লক্ষ্য করুন LS ব্যাকআপ জব সেকেন্ডারি সার্ভারে ফেইল করছে কিন্তু প্রাইমারিতে ঠিকমতো চলছে।
ধাপ ১৫
যেহেতু HEAD3, DR সার্ভারে LS কপি এবং রিস্টোর জবের দুটি সেট রয়েছে, আপনাকে নিশ্চিত করতে হবে যে একবারে শুধু এক সেট জব চলে। আপনাকে HEAD2 এবং HEAD3-এর মাঝপথে লগ শিপিং কনফিগার করার সময় তৈরি হওয়া জবগুলো সক্রিয় রাখতে হবে এবং অন্য সেট জবগুলো ডিজেবল করতে হবে।
নিচের ছবিটি আরও ডিটেল দেখাচ্ছে:
এখন, আপনি সফলভাবে একটি AlwaysOn AG-র Bestandteil মৌজুদা ডেটাবেসের ওপর লগ শিপিং কনফিগার করেছেন। কোন সার্ভার প্রাইমারি সার্ভার হিসেবে কাজ করছে তার নির্বিশেষে, আপনার লগ শিপিং সিঙ্কে থাকবে।
নোট: আমরা দৃঢ়ভাবে সুপারিশ করি যে আপনি টেস্টিং ছাড়া প্রোডাকশনে কোন পরিবর্তন না আনার। এই সমাধান আপনার প্রোডাকশন এনভায়রনমেন্টে বাস্তবায়ন করার আগে, প্রথমে একটি টেস্ট এনভায়রনমেন্টে এই কনফিগারেশন বাস্তবায়ন করুন।
যাচাই:
ক) নিশ্চিত করুন যে বর্তমান প্রাইমারি রেপ্লিকায় ব্যাকআপ জব সফলভাবে চলছে। খ) ব্যাকআপ পাথ শেয়ার্ড পাথের সাথে একই হওয়া উচিত। গ) HEAD2 থেকে HEAD3-এ LS কনফিগারেশনের সময় তৈরি হওয়া কপি এবং রিস্টোর জবগুলো DR সার্ভারে সঠিকভাবে চলতে হবে। ঘ) স্ট্যান্ডার্ড রিপোর্ট সেকশনে Transactional Log Shipping Status চেক করুন।
উপসংহার
একটি হাই-অভেইলেবিলিটি ডেটাবেসের ওপর লগ শিপিং কনফিগার করলে আপনি একটি DR সার্ভার সেট আপ করতে পারেন একটি ভিন্ন ডেটা সেন্টারে। এই সেটআপ ডিজাস্টারের সময় সহায়ক হয় এবং আপনার ব্যবসাকে অপ্রভাবিত রাখে ন্যূনতম ম্যানুয়াল প্রচেষ্টায় এমনকি অন্য ডেটা সেন্টারের সার্ভারগুলো প্রভাবিত হলেও।
ফিডব্যাক ট্যাব ব্যবহার করে মন্তব্য করুন বা প্রশ্ন করুন।
বিশেষজ্ঞ প্রশাসন, ব্যবস্থাপনা এবং কনফিগারেশন দিয়ে আপনার পরিবেশ অপ্টিমাইজ করুন
Rackspace-এর অ্যাপ্লিকেশন সার্ভিস (RAS) বিশেষজ্ঞরা অ্যাপ্লিকেশনের ব্যাপক পোর্টফোলিওর জুড়ে নিচের প্রফেশনাল এবং ম্যানেজড সার্ভিসগুলো প্রদান করেন:
- ই-কমার্স এবং ডিজিটাল এক্সপেরিয়েন্স প্ল্যাটফর্ম
- এন্টারপ্রাইজ রিসোর্স প্ল্যানিং (ERP)
- বিজনেস ইন্টেলিজেন্স
- Salesforce কাস্টমার রিলেশনশিপ ম্যানেজমেন্ট (CRM)
- ডেটাবেস
- ইমেইল হোস্টিং এবং প্রোডাক্টিভিটি
আমরা প্রদান করি:
- পক্ষপাতমূলক না এমন দক্ষতা: আমরা আপনার আধুনিকীকরণের যাত্রা সরল ও পথপ্রদর্শন করি, সেগুলোর ওপর ফোকাস করি যা অবিলম্বে মান দেয়।
- Fanatical Experience™: আমরা একটি প্রক্রিয়া-প্রথম, প্রযুক্তি-দ্বিতীয়® পদ্ধতির সাথে ডেডিকেটেড টেকনিক্যাল সাপোর্ট জোড়া দিয়ে সমগ্র সমাধান দিই।
- অনুপম পোর্টফোলিও: আমরা ব্যাপক ক্লাউড অভিজ্ঞতা প্রয়োগ করি যাতে আপনি সঠিক প্রযুক্তি সঠিক ক্লাউডে বেছে নেওয়া এবং ত্রিন করুন।
- চুস্ত ডেলিভারি: আমরা আপনার যাত্রার যেখানে আছেন সেখানে আপনাকে পাই এবং আমাদের সাফল্য আপনার সাথে মিলিয়ে দিই।
এখন চ্যাট করুন শুরু করতে।