আমার আগের ব্লগে, আমি ডিসকাস করেছিলাম কীভাবে একটি বড় ডেটাবেসের জন্য ডেটাবেস ব্যাকআপ ব্যবহার করে রিপ্লিকেশন ইনিশিয়ালাইজ করা যায়। এখন আমি আলোচনা করব কীভাবে নতুন আর্টিকেল যোগ করা যায় এবং ইতিমধ্যে ব্যাকআপ দিয়ে কনফিগার করা SQL Server ট্রানজ্যাকশনাল রিপ্লিকেশন রিইনিশিয়ালাইজ করা যায়।
ভূমিকা
সাধারণত, একজন ব্যবহারকারী স্ন্যাপশট এজেন্ট ব্যবহার করে পাবলিকেশনে নতুন আর্টিকেল যোগ করতে বা সাবস্ক্রайবার রিইনিশিয়ালাইজ করতে চায়। তবে এই সিনেরিওতে, আমি ইতিমধ্যে ট্রানজ্যাকশনাল রিপ্লিকেশন কনফিগার করেছি ডেটাবেস ব্যাকআপ ব্যবহার করে। নিচে বিস্তারিত ধাপগুলো দেওয়া হলো:
- ব্যাকআপ দিয়ে ইনিশিয়ালাইজ করা বিদ্যমান পাবলিকেশনে নতুন আর্টিকেল যোগ করুন।
- ব্যাকআপ দিয়ে ইতিমধ্যে ইনিশিয়ালাইজ করা সাবস্ক্রাইবার রিইনিশিয়ালাইজ করুন।
সিনেরিও ১: ব্যাকআপ দিয়ে ইনিশিয়ালাইজ করা বিদ্যমান পাবলিকেশনে নতুন আর্টিকেল কীভাবে যোগ করবেন:
আমাদের সিনেরিওতে, ট্রানজ্যাকশনাল রিপ্লিকেশন ইতিমধ্যে ব্যাকআপ ফাইল ব্যবহার করে কনফিগার করা হয়েছে:
-পাবলিশার + ডিস্ট্রিবিউটর: Node1 -সাবস্ক্রাইবার: Node2 -পাবলিশার ডেটাবেস: ABC_Pub -সাবস্ক্রাইবার ডেটাবেস: ABC_Sub -পাবলিকেশন: ABC_Pub_Bkp -সাবস্ক্রিপশন: ABC_Sub_Bkp -আর্টিকেল: Cars, bikes
বিদ্যমান পাবলিকেশনে নতুন আর্টিকেল যোগ করা যায় ম্যানুয়ালি ডেটা সিঙ্ক্রোনাইজ করে (যেটি আমরা বিস্তারিত ধাপসহ আলোচনা করব) পাবলিশার এবং সাবস্ক্রাইবারের মধ্যে।
প্রসেস স্টেপস ওভারভিউ:
- ইম্পোর্ট/এক্সপোর্ট মেথড ব্যবহার করে পাবলিশার থেকে সাবস্ক্রাইবারে নতুন আর্টিকেলের ডেটা সিঙ্ক্রোনাইজ করুন।
- পাবলিশার ডেটাবেসে নতুন টেবিল যোগ করুন এবং কিছু রো ইনসার্ট করুন।
- নতুন টেবিলের ক্রিয়েট ডেফিনিশন স্ক্রিপ্ট করুন এবং সাবস্ক্রাইবার ডেটাবেসে এক্সিকিউট করুন।
- এক্সপোর্ট/ইম্পোর্ট মেথড ব্যবহার করে পাবলিশার এবং সাবস্ক্রাইবারের মধ্যে ডেটা সিঙ্ক করুন।
- Log Reader এবং Distributor এজেন্ট জব বন্ধ করুন।
- GUI ব্যবহার করে পাবলিকেশনে নতুন আর্টিকেল যোগ করে কনফিগারেশন কমপ্লিট করুন।
- Log Reader এবং Distributor এজেন্ট জব ইনেবল এবং স্টার্ট করুন।
- পাবলিশারে নতুন ডেটা ইনসার্ট করুন।
- সাবস্ক্রাইবারে ডেটা ভ্যালিডেট করুন।
স্টেপ ১: ইম্পোর্ট/এক্সপোর্ট মেথড ব্যবহার করে পাবলিশার থেকে সাবস্ক্রাইবারে নতুন আর্টিকেলের ডেটা সিঙ্ক্রোনাইজ করুন।
বিদ্যমান রিপ্লিকেশনে দুটি আর্টিকেল আছে, এবং আমি পাবলিশার ডেটাবেসের জন্য দুটি নতুন টেবিল তৈরি করব এবং পরে সেগুলো রিপ্লিকেশনে যোগ করব।
বিদ্যমান রিপ্লিকেশনের আর্টিকেল:
আমি পাবলিশার ডেটাবেসে দুটি নতুন টেবিল তৈরি করেছি এবং প্রতিটিতে কিছু রো যোগ করেছি। এখন উভয় টেবিলের ক্রিয়েট ডেফিনিশন স্ক্রিপ্ট করুন এবং সাবস্ক্রাইবার ডেটাবেসে এক্সিকিউট করুন।
পাবলিশার ডেটাবেসে দুটি নতুন টেবিল তৈরি:
পাবলিশার থেকে ডেফিনিশন ব্যবহার করে সাবস্ক্রাইবারে টেবিল তৈরি:
এখন ইম্পোর্ট/এক্সপোর্ট মেথড ব্যবহার করে পাবলিশার এবং সাবস্ক্রাইবারের মধ্যে ডেটা সিঙ্ক করুন:
পাবলিশার ডেটাবেসে রাইট-ক্লিক করুন -> Export data সিলেক্ট করুন -> উইজার্ড ফলো করে প্রয়োজনীয় ইনফোর্মেশন দিন।
সোর্স সার্ভার (পাবলিশার) এবং ডেটাবেস নাম সিলেক্ট করুন:
পরবর্তী ধাপে, ডেস্টিনেশন সার্ভার (সাবস্ক্রাইবার) এবং ডেটাবেস নাম সিলেক্ট করুন:
ডেটা ট্রান্সফার করার জন্য টেবিল নাম সিলেক্ট করুন এবং Next ক্লিক করুন:
পরবর্তী ধাপে, এক্সপোর্ট সফল:
ডেটা ভ্যালিডেশন: আপনি দেখতে পাচ্ছেন, পাবলিশার এবং সাবস্ক্রাইবারের মধ্যে ডেটা সিঙ্ক হয়েছে।
২. Log Reader এবং Distributor এজেন্ট জব বন্ধ করুন–
রিপ্লিকেশন এজেন্টগুলোর স্টল করা আর্টিকেলের সাথে যেকোনো অপারেশনের আগে সেরা রিকমেন্ডেড প্র্যাক্টিস।
৩. GUI ব্যবহার করে পাবলিকেশনে নতুন আর্টিকেল যোগ করে কনফিগারেশন কমপ্লিট করুন
রিপ্লিকেশন ফোল্ডারের অধীনে পাবলিকেশনে রাইট-ক্লিক করুন এবং Properties সিলেক্ট করুন -> Articles পেজে যান -> Show only checked articles in the list আনচেক করুন -> Objects to publish এর অধীনে দুটি নতুন আর্টিকেল সিলেক্ট করুন (আমাদের কেসে Country এবং Customer) এবং OK ক্লিক করে কনফিগারেশন ফিনিশ করুন।
৪. Log Reader এবং Distributor এজেন্ট জব ইনেবল এবং স্টার্ট করুন –
এজেন্ট ইনেবল এবং স্টার্ট হওয়ার পর, নতুন যোগ করা রেকর্ডগুলো Log Reader ক্যাপচার করবে এবং তারপর Distributor এজেন্ট সাবস্ক্রাইবারে রিপ্লিকেট করবে। পরবর্তী ধাপে, ডেটা ভ্যালিডেট করা হবে।
৫. পাবলিশারে নতুন ডেটা ইনসার্ট করুন।
এখন আমি পাবলিশারের উভয় টেবিলে ডেটা যোগ করব প্রতিটিতে ৫টি নতুন রেকর্ড যোগ করে।
৬. সাবস্ক্রাইবারে ডেটা ভ্যালিডেট করুন:
ভ্যালিডেশন শেষে, আপনি দেখবেন ৫টি নতুন রেকর্ড যোগ হয়েছে (মোট ১০টি রো) উভয় টেবিলে। একইগুলো সাবস্ক্রাইবারে রিপ্লিকেট হয়েছে।
রিপ্লিকেশন হেলথ স্ট্যাটাস:
সিনেরিও ২: ব্যাকআপ দিয়ে ইতিমধ্যে ইনিশিয়ালাইজ করা সাবস্ক্রাইবার কীভাবে রিইনিশিয়ালাইজ করবেন।
দ্বিতীয় সিনেরিওতে যাওয়া যাক যেখানে иногда রিপ্লিকেশনের সিঙ্ক্রোনাইজেশন ইস্যু ফিক্স করার জন্য সাবস্ক্রাইবার রিইনিশিয়ালাইজ করা শেষ অপশন রয়ে যায়।
আমাদের কেসে, আমরা ব্যাকআপ দিয়ে রিপ্লিকেশন ইনিশিয়ালাইজ করেছি এবং সাবস্ক্রাইবার রিইনিশিয়ালাইজ করার প্রসেস স্টেপস নিচে দেওয়া হলো।
- Log Reader, Distributor Agent এবং Distributor Cleanup জব বন্ধ করুন।
- পাবলিশার ডেটাবেসের ফুল ব্যাকআপ নিন এবং T-Log ব্যাকআপ জব ডিসেবল করুন।
- সাবস্ক্রাইবার ডেটাবেসে রিপ্লেস দিয়ে ডেটাবেস রিস্টোর করুন।
- ডেটা ভ্যালিডেট করুন।
- sp_addsubscription রান করুন।
- Log Reader এবং Distributor জব ইনেবল করুন, পাবলিশার ডেটাবেসে নতুন রেকর্ড ইনসার্ট করুন এবং সাবস্ক্রাইবারে ডেটা ভ্যালিডেট করুন।
১. Log Reader এবং Distributor এজেন্ট জব বন্ধ করুন।
রিপ্লিকেশন এজেন্টগুলো বন্ধ করা আর্টিকেলের সাথে যেকোনো অপারেশনের আগে সেরা রিকমেন্ডেড প্র্যাক্টিস।
২. পাবলিশার ডেটাবেসের ফুল ব্যাকআপ নিন এবং T-Log ব্যাকআপ জব ডিসেবল করুন।
পাবলিশার সার্ভারে ABC_Pub ডেটাবেসের জন্য ফুল ব্যাকআপ ট্রিগার করুন এবং T-Log ব্যাকআপ জব যদি থাকে তবে ডিসেবল করুন।
৩. সাবস্ক্রাইবার ডেটাবেসে রিপ্লেস এবং norecovery দিয়ে ডেটাবেস রিস্টোর করুন
সাবস্ক্রাইবার ডেটাবেস ABC_Sub রিপ্লেস দিয়ে রিস্টোর:
৪. পাবলিশার এবং সাবস্ক্রাইবার ডেটাবেসের মধ্যে ডেটা ভ্যালিডেট করুন।
ডেটা ভ্যালিডেট করা হয়েছে এবং নিচের স্ন্যাপশটে দেখানো হয়েছে, Cars এবং Bikes টেবিলে প্রতিটিতে ৫টি রেকর্ড এবং Country এবং Customer টেবিলে প্রতিটিতে ১০টি রেকর্ড।
৫. sp_addsubscription রান করুন :
এখন সাবস্ক্রাইবার রিইনিশিয়ালাইজ করার জন্য প্রয়োজনীয় প্যারামিটারসহ নিচের স্টোরড প্রসিডিউর রান করুন।
৬. Log Reader, Distributor Agent এবং Cleanup জব ইনেবল করুন। পাবলিশার ডেটাবেসে নতুন রেকর্ড ইনসার্ট করুন এবং সাবস্ক্রাইবারে ডেটা ভ্যালিডেট করুন।
রিপ্লিকেশন এজেন্ট জব ইনেবল এবং স্টার্ট:
নিম্নলিখিত দুটি রিপ্লিকেটেড টেবিলে অতিরিক্ত ৫টি রেকর্ড ইনসার্ট করুন:
এখন সাবস্ক্রাইবার ডেটাবেসে ডেটা ভ্যালিডেট করুন:
ভ্যালিডেশন কমপ্লিট এবং ৫টি নতুন যোগ করা রেকর্ড সাবস্ক্রাইবারে রিপ্লিকেট হয়েছে এবং সব টেবিলে এখন ১০টি রেকর্ড।
রিপ্লিকেশনের জন্য হেলথ চেক:
উপসংহার
আশা করি উপরে আলোচনা করা দুটি সিনেরিও আপনাকে ব্যাকআপ দিয়ে ইতিমধ্যে ইনিশিয়ালাইজ করা সাবস্ক্রাইবারে নতুন আর্টিকেল যোগ করা এবং রিইনিশিয়ালাইজ করার জন্য উপকারী লাগবে।
ফিডব্যাক ট্যাব ব্যবহার করে কোনো মন্তব্য বা প্রশ্ন করুন। আপনি আমাদের সাথে কথা বলতে শুরু করতে পারেন।