যতক্ষণ না আপনি সরাসরি স্ল্যাভের উপর কোনও INSERT / আপডেট / ডিলিট স্টেটমেন্ট না সম্পাদন করেন, আপনার স্লেভ ঠিক ঠিক থাকতে হবে। অন্যথায়, মাইএসকিউএল প্রতিলিপিটি ভেঙে যেতে পারে যদি আপনি স্ল্যাভে মাইডিবি.মাইটিবেলে একটি নতুন সারি প্রবেশ করেন এবং প্রতিলিপি দ্বারা, স্ল্যাভ পরে একই প্রাথমিক কী দ্বারা Mydb.mytable এ সারিটির একটি INSERT সনাক্ত করে। এটি ত্রুটি 1062 (সদৃশ কী) উত্পাদন করে।
মাইএসকিউএল প্রতিলিপিটি না ভেঙে আপনি স্লেভকে লিখতে পারার একমাত্র উপায় হ'ল:
- মাস্টারের ডিবি 1, ডিবি 2, ডিবি 3 রয়েছে
- স্লেভ মাস্টার থেকে ডাটাবেসগুলি db1, db2, db3 প্রতিলিপি করছে
- আপনি
CREATE DATABASE db4;
দাস দৌড়ে
- আপনি স্লেভের কেবল db4 এ INSERTs / আপডেট / ডিলিট করেন
- আপনি স্লেভ-এ কেবল db1, db2, db3- তে সন্নিবেশ / আপডেট / ডিলিট করবেন না
কোনও সরঞ্জাম ডাউনলোড না করে কোনও মাস্টার এবং স্লেভ সিঙ্কের বাইরে চলে গেছে তা সনাক্ত করতে যে কোনও টেবিলটি বেছে নিন এবং মাস্টারের সারণির বিপরীতে এবং একই টেবিলের স্লেভের অনুলিপি চেকসুম টেবিলটি চালান ।
EXAMPLE টি
আপনার যদি কোনও টেবিল থাকে mydb.mytable
তবে এর বিরুদ্ধে কমান্ডটি চালান:
mysql> CHECKSUM TABLE mydb.mytable;
মানগুলি যদি একই রকম না ফিরে আসে তবে কিছু সিঙ্ক-এর বাইরে is
আপনি যদি একসাথে টেবিলের একগুণ পরীক্ষা করতে চান তবে আপনি পারকোনার MAATKIT নামিয়ে দিতে পারেন। আপনার দুটি নির্দিষ্ট সরঞ্জামের প্রয়োজন হবে (পারকোনায় পারকোনার টুলকিট রয়েছে যা তারা নিজেরাই ম্যাটকেট থেকে তৈরি করেছিল যা এখন আরও প্রচার করা হচ্ছে)
অথবা
pt-table-checksum
মাস্টার এবং স্লেভের সমস্ত সারণীর বিপরীতে একটি চেকসাম টেবিল সম্পাদন করবে। আপনি এটি নির্দিষ্ট ডিফল্টে সমস্ত ডাটাবেসগুলি করতে কনফিগার করতে পারেন।
pt-table-sync
যে কোনও টেবিলের বিপরীতে স্লেভে চালানো যেতে পারে। --প্রিন্ট এবং - সিঙ্ক-টু-মাস্টার বিকল্পগুলি ব্যবহার করে, আপনি দেখতে পাচ্ছেন যে এসকিউএল স্টেটমেন্টগুলি স্ল্যাভের সাথে পুরোপুরি মাস্টারটির সাথে মিলিয়ে দেওয়ার জন্য কার্যকর করা দরকার। এই সরঞ্জামটি এমন টেবিলের সাথে কাজ করে না যার মধ্যে প্রাথমিক কী বা অনন্য কী নেই।
আমি কয়েক বছর ধরে MAATKIT ব্যবহার করেছি। আমি এখনো করি. আমি এখনও পারকোনা টুলকিটটি ব্যবহার করে দেখিনি, তবে আমি নিশ্চিত যে এটি MAATKIT এর মতো মানের হওয়া উচিত।