मैं दोहरे मास्टर MySQL प्रतिकृति चला रहा हूं और अब बिना किसी प्रतिकृति के एकल डेटाबेस में जाना चाहता हूं। मैं दोनों डेटाबेस पर प्रतिकृति को पूरी तरह से कैसे अक्षम कर सकता हूं?
मैं दोहरे मास्टर MySQL प्रतिकृति चला रहा हूं और अब बिना किसी प्रतिकृति के एकल डेटाबेस में जाना चाहता हूं। मैं दोनों डेटाबेस पर प्रतिकृति को पूरी तरह से कैसे अक्षम कर सकता हूं?
जवाबों:
मास्टर-मास्टर सेटअप के साथ प्रतिकृति को पूरी तरह से अक्षम करने के लिए, आपको प्रत्येक दास पर निम्न कार्य करना चाहिए:
STOP SLAVE;
RESET SLAVE;
( RESET SLAVE ALL;
MySQL 5.5.16 और बाद के लिए उपयोग करें )SLAVE STATUS
जाने के बाद भी प्रश्नों पर पुरानी प्रतिकृति जानकारी को रिपोर्ट करेगा RESET SLAVE
। निगरानी या दूरस्थ कॉन्फ़िगरेशन प्रबंधन टूल के लिए जानना महत्वपूर्ण है। CentOS 6.5 पर MySQL 5.5.38 के साथ व्यवहार की पुष्टि की।
मुझे पता है कि यह एक पुराना सवाल है, लेकिन मैंने पाया कि मुझे गुलाम चर भी रीसेट करना होगा। यदि आप सुझाए गए "ब्ला" का उपयोग करते हैं, तो सर्वर 'ब्ला' खोजने के लिए सर्वर स्टार्टअप पर प्रयास करेगा।
बदले
MASTER
के लिएMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
आप यह सत्यापित कर सकते हैं कि मशीन अब गुलाम नहीं है
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
अब एक त्रुटि फेंकता है।
दास सर्वर पर:
MySQL को मास्टर या दास दोनों में से फिर से शुरू करने की कोई आवश्यकता नहीं है। पूर्ण प्रलेखन MySQL संदर्भ मैनुअल के खंड 19 में पाया जा सकता है ।
यदि आप अपने पिछले कॉन्फ़िगरेशन को वापस करने का निर्णय लेते हैं, तो मैं बाकी प्रतिकृति सेटिंग्स को छोड़ने की सलाह दूंगा। इस तरह से आपको बस डेटा को पुश करना होगा और सेटअप पूरे-कपड़े को फिर से बनाने के बजाय दास स्थिति (स्किप-स्लेव-स्टार्ट को हटाने के लिए मत भूलना) को रीसेट करना होगा।
MySQL संस्करण के बावजूद, ऐसा करने का सबसे पूर्ण तरीका निम्नलिखित है
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
इसके लिए उसे नवीनतम संस्करण पर काम करना होगा क्योंकि प्रतिकृति सेटिंग अभी भी MySQL 5.5 के लिए RAM में है।
मैंने अभी इस विषय पर एक समान प्रश्न का उत्तर दिया: एक MySQL पिछले गुलाम को मास्टर बनाने और दास की स्थिति की जानकारी को हटाने के लिए कैसे?
My.cnf फ़ाइल को अकेले संपादित करना प्रतिकृति को अक्षम करने के लिए पर्याप्त नहीं है। वास्तव में, यह अब इसे सक्षम करने का अनुशंसित तरीका नहीं है। My.cnf फ़ाइल में प्रविष्टियाँ डालना अगले स्टार्टअप के लिए केवल प्रभावी है और व्यवहार करें जैसे कि आपने mysql क्लाइंट में कमांड दर्ज किया है:
mysql> मास्टर को मास्टर_होस्ट = 'ब्लाह', मास्टर_युसर = 'ब्लाह', मास्टर_पासवर्ड = 'ब्लाह' में बदलें ...;
ये दोनों तरीके डेटा डायरेक्टरी में एक फाइल बनाएंगे, जिसे master.info कहा जाएगा । जब तक यह फ़ाइल मौजूद है, सर्वर वहां के विवरण का उपयोग करके प्रयास करेगा और दोहराएगा। "रीसेट स्लेव?" पहले उत्तर में सूचीबद्ध कमांड से master.info फ़ाइल (साथ ही relay-log.info फ़ाइल) से छुटकारा मिल जाएगा । जैसा कि पहले उत्तर में बताया गया है, आप यह भी सुनिश्चित करना चाहते हैं कि आपके पास my.cnf फ़ाइल में कॉन्फ़िगरेशन जानकारी नहीं है, अन्यथा सर्वर के अगले पुनरारंभ पर, लॉगिंग फिर से सक्षम हो जाएगी।
एक जवाब यहाँ है:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* MySQL कॉन्फ़िगरेशन फ़ाइल संपादित करें: /etc/my.cnf और [mysqld] शीर्षक वाले अनुभाग में निम्नलिखित 7 पंक्तियों को हटा दें:
port=3306
log-bin
server-id=1
master-host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*
MySQL को पुनरारंभ करें।
मैं इसे हैरिसन फिस्क के उत्तर में जोड़ रहा हूं:
यदि आपने उपयोग किया है RESET SLAVE ALL;
तो पुनः आरंभ करना आवश्यक नहीं है।
इसके अतिरिक्त, आप उन घटनाओं को सक्षम करना चाह सकते हैं जिन्हें दास पर अक्षम किया गया है:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
उनमें से प्रत्येक के लिए:
alter event <event_name> enable;