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

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

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

ओपन एडएक्स एक जटिल उत्पाद है जिसमें कई तत्व होते हैं। उनमें से एक MySQL डेटाबेस है। इस संक्षिप्त ब्लॉग में हम चर्चा करना चाहेंगे कि आप ओपन एडएक्स प्लेटफॉर्म की उच्च उपलब्धता को कैसे बेहतर बना सकते हैं।

जाहिर है, एकल MySQL डेटाबेस विफलता का एकल बिंदु है और, जैसे, यह उत्पादन परिनियोजन के लिए उपयुक्त दृष्टिकोण नहीं है। ऐसे कई तरीके हैं जिनसे आप MySQL डेटाबेस की उपलब्धता में सुधार कर सकते हैं।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी JSON_REPLACE () समझाया गया

  2. मारियाडीबी 10.3.5 रिलीज कैंडिडेट में क्वालकॉम सेंट्रिक 2400 के लिए ऑप्टिमाइज़ेशन लिखें

  3. कैसे REGEXP_REPLACE () मारियाडीबी में काम करता है

  4. मारियाडीबी 10.2 समर्थन की घोषणा - क्लस्टरकंट्रोल 1.5

  5. Amazon AWS EC2 पर MySQL गैलेरा क्लस्टर 4.0 को तैनात करना