मेरे पास मास्टर-स्लेव सेटअप में MySQL (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;
जब मैंने नया दास शुरू किया तो मुझे मिला
Last_IO_Error: बाइनरी लॉग से डेटा पढ़ते समय मास्टर से घातक त्रुटि 1236 मिली: 'लॉग इवेंट प्रविष्टि max_allowed_packet से अधिक हो गई; मास्टर पर max_allowed_packet बढ़ाएँ '
हालाँकि जब मैंने मूल गुलाम की शुरुआत की, तो यह ठीक-ठाक पकड़ा, और अब सिंक में है।
तो सवाल:
वर्तमान मूल्य 16M है, मुझे कैसे पता चलेगा कि कितना बड़ा जाना है? (मैं नहीं बल्कि एक उत्पादन सर्वर के साथ परीक्षण और त्रुटि से बचना होगा)।
मूल गुलाम के ठीक ठीक होने पर मुझे गुरु पर मूल्य बढ़ाने की आवश्यकता क्यों है, क्या समस्या वास्तव में नए दास के साथ हो सकती है?
अपडेट करें
रोलांडो ने मास्टर, पुराने गुलाम और नए गुलाम का सुझाव दिया और उन्हें फिर से शुरू किया ( SET GLOBAL max_allowed_packet = 1073741824;
जैसा कि किसी कारण से नहीं लगा)
अब अंतिम IO त्रुटि पहले की तरह ही है, लेकिन अब मैं देखता हूं
Last_SQL_Error: रिले लॉग रीड विफलता: रिले लॉग इवेंट प्रविष्टि पार्स नहीं कर सका। संभावित कारण हैं: मास्टर का बाइनरी लॉग दूषित है (आप बाइनरी लॉग पर 'mysqlbinlog' चलाकर इसकी जांच कर सकते हैं), दास का रिले लॉग दूषित है (आप रिले लॉग पर 'mysqlbinlog' चलाकर इसे चेक कर सकते हैं), नेटवर्क की समस्या, या मास्टर या दास के MySQL कोड में एक बग। यदि आप मास्टर के बाइनरी लॉग या दास के रिले लॉग की जांच करना चाहते हैं, तो आप इस दास पर 'SHOW SLAVE STATUS' जारी करके उनके नाम जान सकेंगे।
अगर मैं मास्टर की फाइल पर mysqlbinlog करता हूं, तो यह उम्र के लिए बहुत खुशी से आदेशों के साथ अतीत को स्क्रॉल करता है - फाइल 722M है - अगर मैं गुलाम रिले लॉग के लिए ऐसा करता हूं तो मुझे मिलता है
त्रुटि: Log_event में त्रुटि :: read_log_event (): 'Sanity check विफल', data_len: 38916267, event_type: 69
त्रुटि: ऑफसेट 253 पर प्रविष्टि नहीं पढ़ सका: लॉग प्रारूप में त्रुटि या त्रुटि पढ़ें।
मैंने चरों की जाँच की और परिवर्तनों ने काम किया
mysql> वैरिएबल दिखाएं LIKE '% max_allowed_packet%';
नए गुलाम पर दिखाया 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 संस्करण बहुत दूर हैं?