ब्लॉग श्रृंखला की पिछली पांच पोस्टों में, हमने क्लस्टरिंग/प्रतिकृति (MySQL / Galera, MySQL प्रतिकृति, MongoDB और PostgreSQL) की तैनाती, आपके मौजूदा डेटाबेस और क्लस्टर के प्रबंधन और निगरानी, प्रदर्शन निगरानी और स्वास्थ्य, आपका सेटअप कैसे बनाया जाए, को कवर किया। HAProxy और MaxScale के माध्यम से अत्यधिक उपलब्ध है और पिछली पोस्ट में, बैकअप शेड्यूल करके आपदाओं के लिए खुद को कैसे तैयार किया जाए।
ClusterControl 1.2.11 के बाद से, हमने डेटाबेस कॉन्फ़िगरेशन मैनेजर में प्रमुख सुधार किए हैं। नया संस्करण एक ही समय में कई डेटाबेस होस्ट पर पैरामीटर बदलने की अनुमति देता है और, यदि संभव हो तो, रनटाइम पर उनके मान बदल सकता है।
हमने टिप्स एंड ट्रिक्स ब्लॉग पोस्ट में नया MySQL कॉन्फ़िगरेशन प्रबंधन दिखाया है, लेकिन यह ब्लॉग पोस्ट अधिक गहराई तक जाएगा और MySQL, PostgreSQL और MongoDB के लिए ClusterControl के अंतर्गत कॉन्फ़िगरेशन प्रबंधन को कवर करेगा।
ClusterControl कॉन्फ़िगरेशन प्रबंधन
कॉन्फ़िगरेशन प्रबंधन इंटरफ़ेस प्रबंधित करें> कॉन्फ़िगरेशन के अंतर्गत पाया जा सकता है। यहां से, आप अपने डेटाबेस नोड्स और अन्य टूल्स के कॉन्फ़िगरेशन को देख या बदल सकते हैं जिन्हें ClusterControl प्रबंधित करता है। ClusterControl सभी नोड्स से नवीनतम कॉन्फ़िगरेशन आयात करेगा और पिछली बनाई गई प्रतियों को अधिलेखित कर देगा। वर्तमान में कोई ऐतिहासिक डेटा नहीं रखा गया है।
यदि आप सीधे नोड्स पर कॉन्फ़िगरेशन फ़ाइलों को मैन्युअल रूप से संपादित करना चाहते हैं, तो आप आयात बटन दबाकर परिवर्तित कॉन्फ़िगरेशन को फिर से आयात कर सकते हैं।
और अंतिम लेकिन कम से कम नहीं:आप कॉन्फ़िगरेशन टेम्प्लेट बना या संपादित कर सकते हैं। जब भी आप अपने क्लस्टर में नए नोड परिनियोजित करते हैं तो इन टेम्पलेट्स का उपयोग किया जाता है। बेशक टेम्प्लेट में किए गए कोई भी बदलाव पहले से तैनात नोड्स पर पूर्वव्यापी रूप से लागू नहीं होंगे जो इन टेम्प्लेट का उपयोग करके बनाए गए थे।
MySQL कॉन्फ़िगरेशन प्रबंधन
जैसा कि पहले उल्लेख किया गया है, MySQL कॉन्फ़िगरेशन प्रबंधन को ClusterControl 1.2.11 में एक पूर्ण ओवरहाल मिला है। इंटरफ़ेस अब अधिक सहज है। पैरामीटर बदलते समय ClusterControl जाँचता है कि क्या पैरामीटर वास्तव में मौजूद है। यह सुनिश्चित करता है कि पैरामीटर मौजूद नहीं होने के कारण आपका कॉन्फ़िगरेशन MySQL के स्टार्टअप को अस्वीकार नहीं करेगा।
मैनेज -> कॉन्फ़िगरेशन से, आपको लोड बैलेंसर नोड्स सहित चयनित क्लस्टर के भीतर उपयोग की जाने वाली सभी कॉन्फ़िग फ़ाइलों का एक सिंहावलोकन मिलेगा।
हम मेजबानों और उनकी संबंधित विन्यास फाइलों को आसानी से देखने के लिए एक ट्री संरचना का उपयोग करते हैं। पेड़ के नीचे, आप इस क्लस्टर के लिए उपलब्ध कॉन्फ़िगरेशन टेम्पलेट पाएंगे।
पैरामीटर बदलना
मान लीजिए कि हमें एक साधारण पैरामीटर को बदलने की जरूरत है जैसे अधिकतम अनुमत कनेक्शन (max_connections), हम इस पैरामीटर को रनटाइम पर आसानी से बदल सकते हैं।
इस परिवर्तन को लागू करने के लिए पहले मेजबानों का चयन करें।
फिर उस अनुभाग का चयन करें जिसे आप बदलना चाहते हैं। ज्यादातर मामलों में, आप MYSQLD अनुभाग को बदलना चाहेंगे। यदि आप MySQL के लिए डिफ़ॉल्ट वर्ण सेट को बदलना चाहते हैं, तो आपको इसे MYSQLD और क्लाइंट दोनों अनुभागों में बदलना होगा।
यदि आवश्यक हो तो आप केवल नया अनुभाग नाम टाइप करके एक नया अनुभाग भी बना सकते हैं। यह my.cnf में एक नया अनुभाग बनाएगा।
एक बार जब हम पैरामीटर बदलते हैं और "आगे बढ़ें" दबाकर अपना नया मान सेट करते हैं, तो क्लस्टर कंट्रोल जांच करेगा कि पैरामीटर MySQL के इस संस्करण के लिए मौजूद है या नहीं। यह किसी भी गैर-मौजूद पैरामीटर को अगले पुनरारंभ पर MySQL के प्रारंभ को अवरुद्ध करने से रोकने के लिए है।
जब हम max_connections परिवर्तन के लिए "आगे बढ़ें" दबाते हैं, तो हमें एक पुष्टिकरण प्राप्त होगा कि इसे कॉन्फ़िगरेशन पर लागू किया गया है और सेट ग्लोबल का उपयोग करके रनटाइम पर सेट किया गया है। पुनरारंभ करने की आवश्यकता नहीं है क्योंकि max_connections एक पैरामीटर है जिसे हम रनटाइम पर बदल सकते हैं।
अब मान लीजिए कि हम बफरपूल का आकार बदलना चाहते हैं, इसके प्रभावी होने से पहले इसके लिए MySQL को फिर से शुरू करना होगा:
और जैसा कि अपेक्षित था कॉन्फ़िगरेशन फ़ाइल में मान बदल दिया गया है, लेकिन पुनरारंभ करने की आवश्यकता है। आप इसे होस्ट में मैन्युअल रूप से लॉग इन करके और MySQL प्रक्रिया को पुनरारंभ करके कर सकते हैं। ClusterControl से ऐसा करने का दूसरा तरीका नोड्स डैशबोर्ड का उपयोग करना है।
गैलेरा क्लस्टर में नोड्स को पुनरारंभ करना
आप "रिस्टार्ट नोड" का चयन करके और "आगे बढ़ें" बटन दबाकर प्रति नोड पुनरारंभ कर सकते हैं।
जब आप गैलेरा नोड पर "आरंभिक प्रारंभ" का चयन करते हैं, तो ClusterControl MySQL डेटा निर्देशिका को खाली कर देगा और इस तरह एक पूर्ण प्रतिलिपि को बाध्य करेगा। यह, जाहिर है, कॉन्फ़िगरेशन परिवर्तन के लिए अनावश्यक है। सुनिश्चित करें कि आपने पुष्टिकरण संवाद में "आरंभिक" चेकबॉक्स को अनियंत्रित छोड़ दिया है। यह होस्ट पर MySQL को रोक देगा और प्रारंभ करेगा लेकिन आपके कार्यभार और बफरपूल आकार के आधार पर इसमें कुछ समय लग सकता है क्योंकि MySQL इनो डीबी बफरपूल से डिस्क पर गंदे पृष्ठों को फ्लश करना शुरू कर देगा। ये वे पृष्ठ हैं जिन्हें स्मृति में संशोधित किया गया है लेकिन डिस्क पर नहीं।
एक MySQL मास्टर-स्लेव टोपोलॉजी में नोड्स को पुनरारंभ करना
MySQL मास्टर-स्लेव टोपोलॉजी के लिए आप केवल नोड द्वारा नोड को पुनरारंभ नहीं कर सकते। जब तक मास्टर का डाउनटाइम स्वीकार्य न हो, आपको पहले दास पर कॉन्फ़िगरेशन परिवर्तन लागू करना होगा और फिर दास को नया मास्टर बनने के लिए बढ़ावा देना होगा।
आप एक-एक करके दासों के माध्यम से जा सकते हैं और उन पर "पुनरारंभ नोड" निष्पादित कर सकते हैं।
सभी दासों में परिवर्तन लागू करने के बाद, दास को नया स्वामी बनने के लिए प्रोत्साहित करें:
दास के नए मास्टर बनने के बाद, आप परिवर्तन को लागू करने के लिए पुराने मास्टर नोड को बंद और पुनरारंभ कर सकते हैं।
कॉन्फ़िगरेशन आयात करना
अब जब हमने परिवर्तन को सीधे डेटाबेस, साथ ही कॉन्फ़िगरेशन फ़ाइल पर लागू कर दिया है, तो यह अगले कॉन्फ़िगरेशन आयात तक ClusterControl में संग्रहीत कॉन्फ़िगरेशन में परिलक्षित परिवर्तन को देखने के लिए ले जाएगा। यदि आप कम धैर्यवान हैं, तो आप "आयात" बटन दबाकर तत्काल कॉन्फ़िगरेशन आयात शेड्यूल कर सकते हैं।
PostgreSQL कॉन्फ़िगरेशन प्रबंधन
PostgreSQL के लिए, कॉन्फ़िगरेशन प्रबंधन MySQL कॉन्फ़िगरेशन प्रबंधन से थोड़ा अलग काम करता है। सामान्य तौर पर, आपके यहां समान कार्यक्षमता है:कॉन्फ़िगरेशन बदलें, सभी नोड्स के लिए कॉन्फ़िगरेशन आयात करें और टेम्पलेट्स को परिभाषित/बदलें।
यहां अंतर यह है कि आप पूरी कॉन्फ़िगरेशन फ़ाइल को तुरंत बदल सकते हैं और इस कॉन्फ़िगरेशन को डेटाबेस नोड में वापस लिख सकते हैं।
यदि किए गए परिवर्तनों को पुनः आरंभ करने की आवश्यकता है, तो एक "पुनरारंभ करें" बटन दिखाई देगा जो आपको परिवर्तनों को लागू करने के लिए नोड को पुनरारंभ करने की अनुमति देता है।
MongoDB कॉन्फ़िगरेशन प्रबंधन
MongoDB कॉन्फ़िगरेशन प्रबंधन MySQL कॉन्फ़िगरेशन प्रबंधन के समान काम करता है:आप कॉन्फ़िगरेशन बदल सकते हैं, सभी नोड्स के लिए कॉन्फ़िगरेशन आयात कर सकते हैं, पैरामीटर बदल सकते हैं और टेम्पलेट बदल सकते हैं।
पैरामीटर बदलें संवाद (जैसा कि "पैरामीटर बदलना" अनुभाग में वर्णित है::
का उपयोग करके कॉन्फ़िगरेशन को बदलना बहुत सीधा है।एक बार बदलने के बाद, आप "कॉन्फ़िगर चेंज लॉग" डायलॉग में क्लस्टरकंट्रोल द्वारा प्रस्तावित संशोधन के बाद की कार्रवाई देख सकते हैं:
फिर आप परिवर्तनों को लोड करने के लिए संबंधित MongoDB नोड्स, एक समय में एक नोड को पुनरारंभ करने के लिए आगे बढ़ सकते हैं।
अंतिम विचार
इस ब्लॉग पोस्ट में हमने सीखा कि कैसे ClusterControl में आपके कॉन्फ़िगरेशन को प्रबंधित, परिवर्तित और टेम्पलेट किया जाए। जब आप अपने टोपोलॉजी में केवल एक नोड को तैनात करते हैं तो टेम्प्लेट बदलने से आपका बहुत समय बच सकता है। चूंकि टेम्पलेट का उपयोग नए नोड्स के लिए किया जाएगा, यह आपको बाद में सभी कॉन्फ़िगरेशन को बदलने से बचाएगा। हालाँकि, MySQL और MongoDB आधारित नोड्स के लिए, नए कॉन्फ़िगरेशन प्रबंधन इंटरफ़ेस के कारण सभी नोड्स पर कॉन्फ़िगरेशन बदलना तुच्छ हो गया है।
एक अनुस्मारक के रूप में, हमने हाल ही में क्लस्टरिंग / प्रतिकृति (MySQL / Galera, MySQL प्रतिकृति, MongoDB और PostgreSQL) की समान श्रृंखला परिनियोजन, आपके मौजूदा डेटाबेस और क्लस्टर के प्रबंधन और निगरानी, प्रदर्शन निगरानी और स्वास्थ्य, अपने सेटअप को अत्यधिक कैसे बनाया जाए, को कवर किया है। HAProxy और MaxScale के माध्यम से उपलब्ध है और पिछली पोस्ट में, बैकअप शेड्यूल करके आपदाओं के लिए खुद को कैसे तैयार किया जाए।