मैं MySQL प्रतिकृति को पूरी तरह से कैसे अक्षम कर सकता हूं


64

मैं दोहरे मास्टर MySQL प्रतिकृति चला रहा हूं और अब बिना किसी प्रतिकृति के एकल डेटाबेस में जाना चाहता हूं। मैं दोनों डेटाबेस पर प्रतिकृति को पूरी तरह से कैसे अक्षम कर सकता हूं?

जवाबों:


81

मास्टर-मास्टर सेटअप के साथ प्रतिकृति को पूरी तरह से अक्षम करने के लिए, आपको प्रत्येक दास पर निम्न कार्य करना चाहिए:

  1. STOP SLAVE;
  2. RESET SLAVE;( RESET SLAVE ALL;MySQL 5.5.16 और बाद के लिए उपयोग करें )
  3. My.cnf को संपादित करें और किसी भी जानकारी (यदि मौजूद है) को हटा दें जो "मास्टर -..." या "प्रतिकृति -..." विकल्पों को संदर्भित करता है। आपके पास my.cnf में कुछ भी नहीं हो सकता है, क्योंकि प्रतिकृति को गतिशील रूप से भी सेटअप किया जा सकता है।
  4. Myqqld को पुनरारंभ करें।

यदि प्रतिकृति गतिशील रूप से सेटअप है, तो चरण 1 और 2 पर्याप्त होना चाहिए।
tanyehzheng

4
MySQL के पुनरारंभ होने तक, यह कमांड दिए SLAVE STATUSजाने के बाद भी प्रश्नों पर पुरानी प्रतिकृति जानकारी को रिपोर्ट करेगा RESET SLAVE। निगरानी या दूरस्थ कॉन्फ़िगरेशन प्रबंधन टूल के लिए जानना महत्वपूर्ण है। CentOS 6.5 पर MySQL 5.5.38 के साथ व्यवहार की पुष्टि की।
क्रिस लास्की

मैं स्टेप्स करता हूं लेकिन क्यों वह निष्क्रिय दास अभी भी mtop कमांड की सूची में है? इसे सूची से कैसे निकालें?
स्कॉट चू

18

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मैंने पाया कि मुझे गुलाम चर भी रीसेट करना होगा। यदि आप सुझाए गए "ब्ला" का उपयोग करते हैं, तो सर्वर 'ब्ला' खोजने के लिए सर्वर स्टार्टअप पर प्रयास करेगा।

बदले MASTERके लिएMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';

आप यह सत्यापित कर सकते हैं कि मशीन अब गुलाम नहीं है

SHOW SLAVE STATUS \G;

5
यह अब काम नहीं करता है। सेटिंग CHANGE MASTER TO MASTER_HOST=''अब एक त्रुटि फेंकता है।
ग्रे

ERROR 1210 (HY000): MASTER_HOST के लिए गलत तर्क
काज़िमियरस एलियूलिस

CentOS 6 (MySQL 5.1) पर मेरे लिए काम करता है, इसके बाद SHOW SLAVE STATUS एक खाली सेट देता है, जबकि RESET SLAVE के बाद भी यह कुछ मास्टर जानकारी दिखाता है।
Martijn

यह उत्तर अभी भी MySQL 5.1 उपयोगकर्ताओं के लिए मान्य है (वहां अभी भी हो सकता है)।
रोलैंडमाइसीडीडीबीए

12

दास सर्वर पर:

  1. प्रतिकृति को रोकने के लिए "स्टॉप स्लेव" चलाएं।
  2. मास्टर सर्वर से प्राप्त बाइनरी लॉग में स्थिति को भूलने के लिए दास सर्वर को बताने के लिए "रीसेट दास" चलाएं।
  3. जब आप MySQL को पुनरारंभ करते हैं तो प्रतिकृति को शुरू करने से रोकने के लिए my.cnf में "स्किप-स्लेव-स्टार्ट" जोड़ें।

MySQL को मास्टर या दास दोनों में से फिर से शुरू करने की कोई आवश्यकता नहीं है। पूर्ण प्रलेखन MySQL संदर्भ मैनुअल के खंड 19 में पाया जा सकता है ।

यदि आप अपने पिछले कॉन्फ़िगरेशन को वापस करने का निर्णय लेते हैं, तो मैं बाकी प्रतिकृति सेटिंग्स को छोड़ने की सलाह दूंगा। इस तरह से आपको बस डेटा को पुश करना होगा और सेटअप पूरे-कपड़े को फिर से बनाने के बजाय दास स्थिति (स्किप-स्लेव-स्टार्ट को हटाने के लिए मत भूलना) को रीसेट करना होगा।


7

MySQL संस्करण के बावजूद, ऐसा करने का सबसे पूर्ण तरीका निम्नलिखित है

cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start

इसके लिए उसे नवीनतम संस्करण पर काम करना होगा क्योंकि प्रतिकृति सेटिंग अभी भी MySQL 5.5 के लिए RAM में है।

मैंने अभी इस विषय पर एक समान प्रश्न का उत्तर दिया: एक MySQL पिछले गुलाम को मास्टर बनाने और दास की स्थिति की जानकारी को हटाने के लिए कैसे?


6

My.cnf फ़ाइल को अकेले संपादित करना प्रतिकृति को अक्षम करने के लिए पर्याप्त नहीं है। वास्तव में, यह अब इसे सक्षम करने का अनुशंसित तरीका नहीं है। My.cnf फ़ाइल में प्रविष्टियाँ डालना अगले स्टार्टअप के लिए केवल प्रभावी है और व्यवहार करें जैसे कि आपने mysql क्लाइंट में कमांड दर्ज किया है:

mysql> मास्टर को मास्टर_होस्ट = 'ब्लाह', मास्टर_युसर = 'ब्लाह', मास्टर_पासवर्ड = 'ब्लाह' में बदलें ...;

ये दोनों तरीके डेटा डायरेक्टरी में एक फाइल बनाएंगे, जिसे master.info कहा जाएगा । जब तक यह फ़ाइल मौजूद है, सर्वर वहां के विवरण का उपयोग करके प्रयास करेगा और दोहराएगा। "रीसेट स्लेव?" पहले उत्तर में सूचीबद्ध कमांड से master.info फ़ाइल (साथ ही relay-log.info फ़ाइल) से छुटकारा मिल जाएगा । जैसा कि पहले उत्तर में बताया गया है, आप यह भी सुनिश्चित करना चाहते हैं कि आपके पास my.cnf फ़ाइल में कॉन्फ़िगरेशन जानकारी नहीं है, अन्यथा सर्वर के अगले पुनरारंभ पर, लॉगिंग फिर से सक्षम हो जाएगी।


5

एक जवाब यहाँ है:

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 को पुनरारंभ करें।


4

मैं इसे हैरिसन फिस्क के उत्तर में जोड़ रहा हूं:

यदि आपने उपयोग किया है RESET SLAVE ALL;तो पुनः आरंभ करना आवश्यक नहीं है।

इसके अतिरिक्त, आप उन घटनाओं को सक्षम करना चाह सकते हैं जिन्हें दास पर अक्षम किया गया है:

select * from information_schema.events where status = 'SLAVESIDE_DISABLED';

उनमें से प्रत्येक के लिए:

alter event <event_name> enable;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.