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

उच्च उपलब्धता के लिए कैमिलो MySQL डेटाबेस को कैसे परिनियोजित करें

चमिलो, ओपन एडएक्स या मूडल की तरह, एक ऐसा मंच है जो शैक्षणिक संस्थानों को अपनी शैक्षिक गतिविधियों को इंटरनेट पर स्थानांतरित करने की अनुमति देता है। यह देखते हुए कि पिछले वर्ष में अधिकांश शैक्षिक गतिविधि ऑनलाइन हो गई है, यह आश्चर्य की बात नहीं है कि हम अधिक से अधिक लोगों को अपने शैक्षिक प्लेटफार्मों को बढ़ाने और बेहतर उपलब्धता सुनिश्चित करने के लिए संघर्ष करते हुए देखते हैं।

चमिलो *AMP स्टैक पर निर्मित एक प्लेटफॉर्म है, जिसमें Apache, MySQL और PHP शामिल हैं। हमेशा की तरह, अत्यधिक उपलब्ध वातावरण में माइग्रेट करने के लिए डेटाबेस सबसे कठिन तत्व है। इस छोटे से ब्लॉग में हम चर्चा करना चाहेंगे कि आप कैमिलो डेटाबेस की उच्च उपलब्धता को कैसे सुधार सकते हैं।

जैसा कि आप कल्पना कर सकते हैं, एकल MySQL डेटाबेस विफलता का एकल बिंदु है और, जैसे, उत्पादन परिनियोजन में इसे टाला जाना चाहिए। सौभाग्य से, कुछ तरीके हैं जिनसे आप MySQL डेटाबेस की उपलब्धता में सुधार कर सकते हैं।

समस्या से निपटने के तरीकों में से एक गैलेरा क्लस्टर का उपयोग करना होगा। न्यूनतम परिनियोजन में तीन नोड शामिल होने चाहिए - ऐसे क्लस्टर स्वचालित रूप से एकल नोड की विफलता को संभाल सकते हैं। शेष दो नोड काम करना जारी रखेंगे और एप्लिकेशन से आने वाले प्रश्नों के लिए उत्तरदायी होंगे।

इस सेटअप के लिए गैलेरा क्लस्टर के सामने किसी प्रकार के लोड बैलेंसर की आवश्यकता होगी। इसका काम यातायात को संभालना और उसे एक उचित गंतव्य पर पुनर्निर्देशित करना होगा।

आइए देखें कि कैसे ClusterControl आपको लोड बैलेंसर्स के एक सेट के साथ गैलेरा क्लस्टर को तैनात करने में मदद कर सकता है जिसका उपयोग आप अपने चैमिलो प्लेटफॉर्म के लिए कर सकते हैं।

मारियाडीबी क्लस्टर परिनियोजित करना

इस बार हम अपने बैकएंड के रूप में मारियाडीबी क्लस्टर का उपयोग करने का प्रयास करेंगे। चमिलो MySQL 5.6 और नए या मारियाडीबी 5.5 और अधिक हाल का समर्थन करता है। पहले चरण के रूप में हमें विज़ार्ड से "तैनाती" चुनना होगा:

एक बार ऐसा करने के बाद, हमें SSH कनेक्टिविटी, पासवर्ड रहित, कुंजी को परिभाषित करना होगा -आधारित SSH पहुंच ClusterControl के लिए एक आवश्यकता है, अन्यथा यह डेटाबेस अवसंरचना का प्रबंधन करने में सक्षम नहीं होगा:यह सेवाओं को प्रारंभ या बंद करने, सॉफ़्टवेयर स्थापित करने आदि के लिए आदेशों को निष्पादित करने के लिए SSH कनेक्टिविटी पर निर्भर करता है।

फिर हमें विक्रेता, संस्करण, पासवर्ड, होस्ट और कुछ पर निर्णय लेना चाहिए अतिरिक्त सेटिंग्स:

इन सभी विवरणों को भरने के साथ ही हम परिनियोजन के साथ आगे बढ़ने के लिए तैयार हैं।

ProxySQL परिनियोजित करना

जैसा कि हमने पहले उल्लेख किया है, डेटाबेस ही एकमात्र ऐसा तत्व नहीं है जिसे हम परिनियोजित करना चाहते हैं। हम एक लोड बैलेंसर का उपयोग कर सकते हैं जिसका उपयोग हम ट्रैफ़िक को इधर-उधर करने के लिए करेंगे यदि कोई एक नोड विफल हो जाता है। हम इसका उपयोग रीड/राइट स्प्लिट प्रदान करने के लिए भी करेंगे, सभी राइट्स को एक मारियाडीबी गैलेरा नोड पर निर्देशित करेंगे और शेष मारियाडीबी गैलेरा नोड्स में स्प्लिटिंग करेंगे। इससे हमें विभिन्न गैलेरा नोड्स पर निष्पादित राइट्स के बीच संघर्ष से बचने में मदद मिलेगी।

ProxySQL ClusterControl के लिए भी कुछ जानकारी भरने की आवश्यकता है - आपको चुनना होगा इसे स्थापित करने के लिए होस्ट करें, प्रॉक्सीएसक्यूएल संस्करण पर निर्णय लें, प्रशासनिक और निगरानी उपयोगकर्ताओं के लिए प्रमाण-पत्र। उन उपयोगकर्ताओं का उपयोग प्रॉक्सीएसक्यूएल को प्रबंधित करने और आपके गैलेरा क्लस्टर की स्थिति की निगरानी करने के लिए किया जाएगा। आपको मौजूदा डेटाबेस उपयोगकर्ताओं को भी आयात करना चाहिए या अपने आवेदन के लिए एक नया बनाना चाहिए। अंत में, यह आपको तय करना है कि आप ProxySQL के साथ कौन से डेटाबेस नोड्स का उपयोग करना चाहते हैं और तय करें कि क्या आप निहित लेनदेन का उपयोग करते हैं।

रख-रखाव तैनात करना

ProxySQL हमारे ट्रैफ़िक को क्लस्टर नोड्स में वितरित करने के लिए बहुत अच्छा काम करेगा। दूसरी ओर, एक एकल ProxySQL नोड विफलता के एकल बिंदु के रूप में कार्य करेगा। इसलिए हम उनमें से कम से कम दो को तैनात करना चाहते हैं। फिर, सवाल यह है कि प्रॉक्सीएसक्यूएल नोड की विफलता का पता कैसे लगाया जाए और ट्रैफिक को स्वस्थ प्रॉक्सीएसक्यूएल में कैसे स्थानांतरित किया जाए। यहाँ Keepalived आता है। यहां विचार एक वर्चुअल आईपी होना है जो काम कर रहे प्रॉक्सीएसक्यूएल इंस्टेंस को इंगित करेगा। इस तरह के VIP का उपयोग एप्लिकेशन में MySQL डेटाबेस कनेक्टिविटी के लिए समापन बिंदु के रूप में किया जा सकता है, यह सुनिश्चित करते हुए कि एप्लिकेशन हमेशा स्वस्थ ProxySQL से टकराएगा, जो बदले में, यह सुनिश्चित करेगा कि ट्रैफ़िक स्वस्थ क्लस्टर नोड तक पहुंच जाएगा।

प्रॉक्सीएसक्यूएल इंस्टेंस जैसे विवरणों को पास करने के बाद, जिन्हें मॉनिटर किया जाना चाहिए, वर्चुअल आईपी और इंटरफ़ेस वीआईपी को बाध्य होना चाहिए हम तैनात करने के लिए तैयार हैं। कुछ मिनटों के बाद सब कुछ तैयार हो जाना चाहिए और टोपोलॉजी नीचे की तरह दिखनी चाहिए:

यह उस समय की बात है जब पर्यावरण की बात आती है जिसे हम बना रहे थे। आप अपने कैमिलो को वीआईपी और पोर्ट 6033 की ओर इंगित कर सकते हैं, यह आपके बैकएंड डेटाबेस से कनेक्टिविटी प्राप्त करने के लिए पर्याप्त होना चाहिए। यदि आप पुराने पठन से संबंधित किसी भी समस्या में भाग लेते हैं (जब लेखन एक नोड को हिट करता है और फिर चमिलो दूसरे नोड से पढ़ने का प्रयास करता है, तो आप गैलेरा क्लस्टर पर कार्य-कारण जांच को सक्षम करने पर विचार कर सकते हैं। एक wsrep_sync_wait चर है जो कई एक्सेस पर परीक्षण सक्षम कर सकता है। पैटर्न:पढ़ता है, अपडेट करता है, सम्मिलित करता है, हटाता है, बदलता है और कमांड दिखाता है। यदि हम केवल चयन प्रश्नों में रुचि रखते हैं, तो हम क्लस्टरकंट्रोल कॉन्फ़िगरेशन प्रबंधन का उपयोग करके इस चर को '1' पर सेट करेंगे।

यह इस परिवर्तन को सभी MariaDB क्लस्टर नोड्स पर निष्पादित करेगा।

बस इतना ही। यदि आप अपना कुछ अनुभव चमिलो के साथ साझा करना चाहते हैं, तो हमें एक टिप्पणी छोड़ने के लिए आपका स्वागत है।


  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 में अपना उपनाम होना चाहिए?

  2. MySQL में दी गई तिथि के लिए महीने का अंतिम दिन कैसे खोजें

  3. Mac पर इंस्टॉल करने के बाद ALTER USER स्टेटमेंट का उपयोग करके MySQL रूट पासवर्ड रीसेट करें

  4. क्लाउड में MySQL - Amazon RDS से EC2 उदाहरण में ऑनलाइन माइग्रेशन:भाग एक

  5. एलपीएडी () फ़ंक्शन MySQL में कैसे काम करता है