Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्लस्टर-टू-क्लस्टर प्रतिकृति का अवलोकन

आजकल, डेटाबेस को किसी अन्य सर्वर/डेटासेंटर में दोहराया जाना बहुत आम है, और कुछ मामलों में यह आवश्यक भी है। आपके डेटाबेस को पूरी तरह से अलग वातावरण में दोहराने के विभिन्न कारण हैं।

  • दूसरे डेटासेंटर में माइग्रेट करें।
  • अपग्रेड (हार्डवेयर/सॉफ्टवेयर) आवश्यकताएं।
  • एक डिजास्टर रिकवरी (DR) साइट में पूरी तरह से समन्वयित संचालन प्रणाली को बनाए रखें जो किसी भी समय ले सकती है
  • स्लेव डेटाबेस को कम लागत वाली DR योजना के हिस्से के रूप में रखें।
  • भौगोलिक स्थान की आवश्यकताओं के लिए (डेटा किसी विशिष्ट देश में स्थानीय रूप से होना चाहिए)।
  • एक परीक्षण वातावरण है।
  • समस्या निवारण उद्देश्य।
  • रिपोर्टिंग डेटाबेस।

और, इस प्रतिकृति कार्य को करने के विभिन्न तरीके हैं:

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

इस ब्लॉग में, हम एक नई ClusterControl 1.7.4 सुविधा देखेंगे जो आपको इस कार्य को बेहतर बनाने के लिए पहले बताई गई विधि के मिश्रण का उपयोग करने की अनुमति देती है।

क्लस्टर-टू-क्लस्टर प्रतिकृति क्या है?

दो समूहों के बीच प्रतिकृति एक ही बात नहीं है जैसे कि दो डेटा केंद्रों में चलने के लिए एक क्लस्टर का विस्तार करना। दो समूहों के बीच प्रतिकृति स्थापित करते समय, हमारे पास वास्तव में 2 अलग-अलग प्रणालियाँ होती हैं जो स्वायत्त रूप से संचालित हो सकती हैं। प्रतिकृति का उपयोग उन्हें सिंक में रखने के लिए किया जाता है, ताकि दास प्रणाली में एक अद्यतन स्थिति हो और वह इसे संभाल सके।

ClusterControl 1.7.4 से, चल रहे स्रोत क्लस्टर को सीधे क्लोन करके, या स्रोत क्लस्टर के हाल के बैकअप का उपयोग करके एक नया क्लस्टर बनाना संभव है।

क्लस्टर को क्लोन करने के बाद, आपके पास डेटा प्राप्त करने वाला एक स्लेव क्लस्टर (SC) होगा, और एक मास्टर क्लस्टर (MC) स्लेव में परिवर्तन भेजेगा।

ClusterControl निम्नलिखित क्लस्टर प्रकारों के लिए क्लस्टर-टू-क्लस्टर प्रतिकृति का समर्थन करता है:

  • Percona XtraDB क्लस्टर संस्करण 5.6.x और बाद में।
  • MariaDB Galera क्लस्टर संस्करण 10.x और बाद में।
  • PostgreSQL 9.6 और बाद के संस्करण।

पेरकोना XtraDB / MariaDB गैलेरा क्लस्टर के लिए क्लस्टर-टू-क्लस्टर प्रतिकृति

MySQL आधारित इंजनों के लिए, इस सुविधा का उपयोग करने के लिए GTID की आवश्यकता होती है, और मास्टर और स्लेव क्लस्टर के बीच अतुल्यकालिक प्रतिकृति का उपयोग किया जाएगा।

इस कार्य के लिए वर्तमान क्लस्टर तैयार करने के लिए कुछ कार्य करने हैं। सबसे पहले, वर्तमान क्लस्टर पर कम से कम एक नोड में बाइनरी लॉग सक्षम होना चाहिए। फिर, आपको क्लस्टरकंट्रोल कॉन्फ़िगरेशन फ़ाइल में डेटाबेस नोड में कॉन्फ़िगर किए गए बैकअप उपयोगकर्ता को जोड़ने की आवश्यकता है, जिसका उपयोग प्रबंधन कार्यों के लिए किया जाएगा। ये सभी क्रियाएं ClusterControl UI या ClusterControl CLI का उपयोग करके की जा सकती हैं।

अब आप Percona XtraDB/MariaDB Galera क्लस्टर-टू-क्लस्टर प्रतिकृति बनाने के लिए तैयार हैं। जब कार्य समाप्त हो जाएगा, तो आपके पास होगा:

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

ClusterControl UI या ClusterControl CLI दोनों से, आप निम्न में सक्षम होंगे:

  • यह प्रतिकृति क्लस्टर बनाएं।
  • सक्रिय-सक्रिय कॉन्फ़िगरेशन सक्षम करें।
  • क्लस्टर टोपोलॉजी बदलें।
  • प्रतिकृति क्लस्टर का पुनर्निर्माण करें।
  • प्रतिकृति दास को रोकें/शुरू करें।
  • प्रतिकृति स्लेव को रीसेट करें (केवल ClusterControl CLI atm का उपयोग करके कार्यान्वित)।

विचारों

  • बैकअप उपयोगकर्ता को ClusterControl कॉन्फ़िगरेशन फ़ाइल में मैन्युअल रूप से जोड़ा जाना चाहिए।
  • बैकअप उपयोगकर्ता क्रेडेंशियल वर्तमान और नए क्लस्टर दोनों में समान होना चाहिए।
  • स्लेव क्लस्टर बनाते समय निर्दिष्ट MySQL रूट पासवर्ड मास्टर क्लस्टर पर उपयोग किए गए रूट पासवर्ड के समान होना चाहिए।

ज्ञात सीमाएं

  • स्वचालित विफलता अभी तक समर्थित नहीं है। यदि मास्टर विफल हो जाता है, तो यह व्यवस्थापक की जिम्मेदारी है कि वह किसी अन्य मास्टर को विफल कर दे।
  • ClusterControl CLI से केवल एक प्रतिकृति स्लेव को "रीसेट" करना संभव है क्योंकि इसे अभी तक ClusterControl UI में लागू नहीं किया गया है।
  • केवल पढ़ने के लिए मोड में क्लस्टर का पुनर्निर्माण करना ही संभव है। किसी क्लस्टर में सभी नोड्स को केवल-पढ़ने के लिए क्लस्टर के रूप में गिनने के लिए केवल-पढ़ने के लिए होना चाहिए।

PostgreSQL के लिए क्लस्टर-टू-क्लस्टर प्रतिकृति

ClusterControl क्लस्टर-टू-क्लस्टर प्रतिकृति स्ट्रीमिंग प्रतिकृति का उपयोग करके PostgreSQL पर समर्थित है।

आवश्यकता के अनुसार, ClusterControl भूमिका 'मास्टर' के साथ एक PostgreSQL सर्वर होना चाहिए, और जब आप स्लेव क्लस्टर सेट करते हैं, तो व्यवस्थापक क्रेडेंशियल मास्टर क्लस्टर के समान होने चाहिए।

अब आप PostgreSQL क्लस्टर-टू-क्लस्टर प्रतिकृति बनाने के लिए तैयार हैं। जब कार्य समाप्त हो जाएगा, तो आपके पास होगा:

  • दास क्लस्टर में एक नोड मास्टर क्लस्टर में एक नोड से दोहराया जाएगा।
  • प्रतिकृति समूहों के बीच एकतरफा होगी।
  • स्लेव क्लस्टर में नोड केवल-पढ़ने के लिए होगा।

ClusterControl UI या ClusterControl CLI दोनों से, आप निम्न में सक्षम होंगे:

  • यह प्रतिकृति क्लस्टर बनाएं।
  • प्रतिकृति क्लस्टर का पुनर्निर्माण करें।
  • प्रतिकृति दास को रोकें/शुरू करें।

विचार

  • मास्टर और स्लेव क्लस्टर में व्यवस्थापक क्रेडेंशियल समान होने चाहिए।

ज्ञात सीमाएं

  • स्लेव क्लस्टर का अधिकतम आकार एक नोड है।
  • दास समूह को बैकअप से मंचित नहीं किया जा सकता है।
  • टोपोलॉजी परिवर्तन समर्थित नहीं हैं।
  • केवल यूनिडायरेक्शनल प्रतिकृति समर्थित है।

निष्कर्ष

इस नई क्लस्टर नियंत्रण सुविधा का उपयोग करते हुए, आपको अलग से या मैन्युअल रूप से क्लस्टर प्रतिकृति बनाने के लिए प्रत्येक चरण को करने की आवश्यकता नहीं है, और इसके उपयोग के परिणामस्वरूप, आप समय और प्रयास बचाएंगे। इसे आज़माएं!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL कॉलम को AUTO_INCREMENT में बदलें

  2. MySQL मारियाडीबी - अस्थायी तालिका का उपयोग कर क्वेरी

  3. JSON_LENGTH () - MySQL में JSON दस्तावेज़ की लंबाई लौटाएं

  4. MySQL में महीने के हिसाब से प्रतिशत ग्रोथ मंथ की गणना कैसे करें

  5. वास्तविक MySQL क्वेरी समय मापना