क्या एक MySQL गुलाम एक ही समय में एक मास्टर हो सकता है?


17

मैं दो डीबी सर्वर (मास्टर और स्लेव) में 2 डीबी सर्वर (मास्टर और स्लेव) को स्थानांतरित करने की प्रक्रिया में हूं।

DB1 - मास्टर (उत्पादन)

DB2 - गुलाम (उत्पादन)

DB3 - नए मास्टर

DB4 - नया गुलाम

वर्तमान में मेरे पास प्रतिकृति स्थापित है:

DB1 -> DB2
DB3 -> DB4

नए सर्वर के लिए तैयार किए गए उत्पादन डेटा को प्राप्त करने के लिए, मैं इसे "डेज़ी जंजीर" प्राप्त करना चाहूंगा ताकि यह इस तरह दिखे:

DB1 -> DB2 -> DB3 -> DB4

क्या यह संभव है? जब मैं show master status;DB2 (प्रोडक्शन स्लेव) पर चलता हूं, तो बनलॉग का कब्जा कभी नहीं बदलता है:

+ ------------------ + ---------- + -------------- + ---- -------------- +
| फ़ाइल | स्थिति | Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------ + ---------- + -------------- + ---- -------------- +
| mysql-bin.000020 | 98 | | |
+ ------------------ + ---------- + -------------- + ---- -------------- +

मैं थोड़ा उलझन में हूं कि DB2 पर बिनलॉग की स्थिति क्यों नहीं बदल रही है, आदर्श रूप से यह DB3 का मास्टर होगा।

जवाबों:


16

बिनलॉग पर DB2गुलाम अपडेट नहीं कर रहा था। प्रतिकृति को डेज़ी करने के लिए, एक को log-slave-updatesmy.conf में सेट करना होगा ।

http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_log-slave-updates


लेकिन फिर आप दो बार लॉग लिखते हैं, एक बार रिले लॉग में और एक बार बिनलॉग फाइलों में। रिले लॉग का उपयोग करके दास से प्रतिकृति क्यों नहीं?
18

9

हां, यह संभव है :) इसे "मास्टर विथ रिले स्लेव" प्रतिकृति कहा जाता है और नेट पर इसके बारे में बहुत सारे दस्तावेज हैं।

मैं आपको आधिकारिक प्रलेखन पर एक नज़र डालने की सलाह दूंगा

Btw, इन स्लाइड्स पर भी एक नज़र डालें । उनके पास प्रतिकृति टोपोलॉजी के बारे में कुछ संकेत हैं।

उम्मीद है की यह मदद करेगा।


3

हां - आप mysql सर्वर को डेज़ी-चेन कर सकते हैं, आप एक परिपत्र प्रतिकृति भी बना सकते हैं इसमें दो या अधिक मशीनों के साथ । बस दास के रूप में बिनोलिंग को सक्षम करने के लिए याद रखें जो मास्टर के रूप में भी कार्य करता है।


1
परिपत्र प्रतिकृति अविश्वसनीय रूप से नाजुक है। यह ज्यादातर परिस्थितियों में बीमार है।
वार्नर

@Warner - यह और भी जटिल प्रतिकृति सेटअप का उदाहरण था।
पीक्यूडी

दोस्तों दोस्त को डेज़ी-चेन mysql सर्वर न दें।
sjas

@sjas जब तक उनके पास ऐसा करने के लिए एक बहुत विशिष्ट कारण नहीं है और श्रृंखला को तोड़ने के संभावित परिणामों को समझते हैं।
pQd

क्षमा करें, लेकिन अभी भी नहीं .Complexity हमेशा आपको बाद में परेशान करता है।
44

0

हाँ यह संभव है। वास्तविक रूप से, आपको DB3 के निर्माण के लिए DB2 के नए स्नैपशॉट की आवश्यकता है। उस समय, यदि आपके पास एक अच्छी स्थिति है, तो आप या तो DB4 के लिए उपयोग कर सकते हैं या DB3 का दूसरा स्नैपशॉट ले सकते हैं।

अद्वितीय सेट करने के लिए मत भूलना server_idप्रत्येक सर्वर के लिए ।

उच्च प्रदर्शन MySQL अधिक उन्नत MySQL प्रशासन को संदर्भित करने के लिए एक महान पुस्तक है।


DB2 वर्तमान में केवल एक गुलाम है, लेकिन यह बिनलॉग स्थिति नहीं बदल रहा है ... क्या आप जानते हैं कि यह सामान्य है?
mmattax

दास (DB2) गुरु के साथ अद्यतित है, फिर भी द्विपद स्थिति नहीं बदल रही है, मुझे क्या जाँच करनी चाहिए?
एममैटैक्स

हां, मैंने पुष्टि की है कि मैं DB1 पर डेटा बदल सकता हूं और इसे DB2 में दोहराया जा सकता है, फिर भी DB2 की द्विपद स्थिति समान है।
एममैटैक्स

मुझे लगता है कि DB @ दास अपडेट को लॉग नहीं कर रहा है, इसलिए स्थिति क्यों नहीं बदल रही है: dev.mysql.com/doc/refman/5.1/en/…
mmattax 25'10

0

जब आप स्विच बनाने के लिए तैयार हों तो सिर्फ DB3 को एक नए दास के रूप में क्यों न जोड़ें, और फिर इसे बढ़ावा दें? यह आपको कई दास होने का अस्थायी अतिरिक्त लाभ देगा, और आपके डाउनटाइम को कम या समाप्त करेगा।


ठीक यही मैं कर रहा हूँ ...
mmattax
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.