আমি মাস্টার-স্লেভ সেটআপে মাইএসকিউএল (5.5) রেখেছি এবং অন্য একটি ক্রীতদাস সার্ভার তৈরি করেছি।
আমি আসল ক্রীতদাসকে থামিয়ে দিয়েছি, ডেটা ফেলে দিয়েছি, অনুলিপি করেছি এবং পুনরায় আমদানি করেছি এবং এটি ভাল কাজ করেছে। আমি মূল দাসের মাস্টার_লগ পোস্টগুলি লক্ষ্য করেছি এবং নতুন দাসের উপরে সেট করতে এই আদেশগুলি ব্যবহার করেছি
CHANGE MASTER TO MASTER_HOST='<ipaddress>',
MASTER_USER='<username>', MASTER_PASSWORD='<password>',
MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000851',
MASTER_LOG_POS=15824150,
MASTER_CONNECT_RETRY=10;
আমি যখন নতুন দাসটি শুরু করি তখন
শেষ_আইও_এররার: বাইনারি লগ থেকে ডেটা পড়ার সময় মাস্টার থেকে মারাত্মক ত্রুটি পেয়েছে: 'লগ ইভেন্টের এন্ট্রি ম্যাক্স_গ্রেড_প্যাককেট ছাড়িয়ে গেছে; মাস্টারের উপরে সর্বোচ্চ_গোলিত_প্যাকটি বাড়ান
তবে আমি যখন আসল দাসটি শুরু করি তখন তা ঠিক হয়ে যায় এবং এখন সিঙ্ক হয়।
সুতরাং প্রশ্নগুলি:
বর্তমান মান 16M, আমি কীভাবে যেতে পারি তা আরও বড় হতে পারে? (আমি বরং প্রোডাকশন সার্ভার দিয়ে পরীক্ষা এবং ত্রুটি এড়াতে চাই)।
মূল দাস যখন ঠিক জরিমানা করেছিল তখন আমার কেন গুরু বাড়ানোর দরকার আছে, নতুন দাসের সাথে সমস্যাটি আসলেই হতে পারে?
হালনাগাদ
রোল্যান্ডো মাস্টার, পুরানো দাস এবং নতুন দাসের পরামর্শ হিসাবে আমি ম্যাক্স_গ্ল্যাড_প্যাকেটটি 1073741824 এ বাড়িয়েছি এবং সেগুলি পুনরায় চালু করেছি ( SET GLOBAL max_allowed_packet = 1073741824;
কোনও কারণে এটি মনে হয় নি)
এখন শেষ আইও ত্রুটি আগের মতই তবে এখন আমি দেখতে পাচ্ছি
শেষ_কিউএসএল_এরর: রিলে লগ পড়ার ব্যর্থতা: রিলে লগ ইভেন্ট এন্ট্রিটিকে পার্স করতে পারেনি। সম্ভাব্য কারণগুলি হ'ল: মাস্টারের বাইনারি লগটি দুর্নীতিগ্রস্থ হয়েছে (বাইনারি লগে 'mysqlbinlog' চালিয়ে আপনি এটি পরীক্ষা করতে পারেন), স্লেভের রিলে লগটি ক্ষতিগ্রস্থ হয়েছে (আপনি রিলে লগটিতে 'mysqlbinlog' চালিয়ে এটি পরীক্ষা করতে পারেন), একটি নেটওয়ার্ক সমস্যা বা মাস্টার বা স্লেভের মাইএসকিউএল কোডে একটি বাগ। আপনি যদি মাস্টারের বাইনারি লগ বা স্লেভের রিলে লগটি পরীক্ষা করতে চান তবে আপনি এই ক্রীতদাসের উপর 'স্লেভ স্ট্যাটাস দেখান' জারি করে তাদের নামগুলি জানতে পারবেন।
যদি আমি মাস্টারের ফাইলটিতে একটি মাইএসকিএলবিনলগ করি তবে এটি কমান্ডগুলি সহকারে বয়সের জন্য বেশ আনন্দের সাথে স্ক্রোল করে - ফাইলটি 722 এম - যদি আমি দাস রিলে লগের জন্য এটি করি তবে আমি পাই
ত্রুটি: লগ_সেন্টে ত্রুটি :: পঠন-লগ_সেন্ট (): 'স্যানিটি চেক ব্যর্থ হয়েছে', ডেটা_লেন: 38916267, ইভেন্ট_ টাইপ: 69
ত্রুটি: অফসেটে এন্ট্রি পড়তে পারা যায়নি 253: লগ ফর্ম্যাটে ত্রুটি বা পড়ার ত্রুটি।
আমি ভেরিয়েবলগুলি পরীক্ষা করেছি এবং পরিবর্তনগুলি তবে কাজ করেছে
mysql> দেখান ভেরিয়েবলগুলি '% সর্বাধিক_নীত_প্যাক্ট%' পছন্দ করুন;
নতুন দাস দেখানো হয়েছে max_allowed_packet
এবং slave_max_allowed_packet
যেখানে তার উপর কেবলমাত্র মাস্টার রয়েছেmax_allowed_packet
সুতরাং আমি মাস্টারের উপর একটি সংস্করণ পরীক্ষা করেছি:
mysql> show variables LIKE '%version%';
+-------------------------+--------------------------------------+
| Variable_name | Value |
+-------------------------+--------------------------------------+
| innodb_version | 1.1.6 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.11-log |
| version_comment | MySQL Community Server (GPL) by Remi |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+--------------------------------------+
এবং নতুন দাস উপর
mysql> show variables LIKE '%version%';
+-------------------------+--------------------------------------+
| Variable_name | Value |
+-------------------------+--------------------------------------+
| innodb_version | 5.5.32 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.32-log |
| version_comment | MySQL Community Server (GPL) by Remi |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+--------------------------------------+
এই 2 সংস্করণগুলি কি খুব দূরে রয়েছে?