MySQL कॉन्फ़िगरेशन प्रबंधन में दो प्रमुख घटक होते हैं - MySQL कॉन्फ़िगरेशन फ़ाइलें और रनटाइम कॉन्फ़िगरेशन। रनटाइम वातावरण पर कॉन्फ़िगरेशन परिवर्तन लागू करना MySQL सर्वर क्लाइंट के माध्यम से किया जा सकता है जिसमें सत्र चर के लिए कोई विशेषाधिकार नहीं है लेकिन वैश्विक चर के लिए सुपर विशेषाधिकार हैं। MySQL कॉन्फ़िगरेशन फ़ाइल में समान कॉन्फ़िगरेशन परिवर्तन लागू करना भी MySQL के पुनरारंभ होने पर परिवर्तनों को लगातार बनाए रखने के लिए आवश्यक है, अन्यथा स्टार्टअप के दौरान डिफ़ॉल्ट मान लोड हो जाएंगे।
इस ब्लॉग पोस्ट में, हम क्लस्टर कंट्रोल कॉन्फ़िगरेशन प्रबंधन को MySQL वर्कबेंच कॉन्फ़िगरेशन प्रबंधन के विकल्प के रूप में देखने जा रहे हैं।
MySQL कार्यक्षेत्र विन्यास प्रबंधन
MySQL वर्कबेंच MySQL सर्वर और सर्वर संस्करण 5.x और उच्चतर के लिए डेटाबेस के साथ काम करने के लिए एक ग्राफिकल क्लाइंट है। यह स्वतंत्र रूप से उपलब्ध है और आमतौर पर SysAdmins, DBA और डेवलपर्स द्वारा SQL विकास, डेटा मॉडलिंग, MySQL सर्वर व्यवस्थापन और डेटा माइग्रेशन करने के लिए उपयोग किया जा रहा है।
आप दूरस्थ MySQL सर्वर पर MySQL/MariaDB कॉन्फ़िगरेशन प्रबंधन करने के लिए MySQL कार्यक्षेत्र का उपयोग कर सकते हैं। हालाँकि, इस सुविधा को सक्षम करने के लिए कुछ प्रारंभिक चरणों की आवश्यकता है। MySQL कार्यक्षेत्र से, मौजूदा कनेक्शन प्रोफ़ाइल का चयन करें और दूरस्थ प्रबंधन कॉन्फ़िगर करें चुनें। कनेक्शन प्रोफ़ाइल के लिए दूरस्थ प्रबंधन सेट करने में आपकी सहायता करने के लिए आपको चरण-दर-चरण कॉन्फ़िगरेशन विज़ार्ड प्रस्तुत किया जाएगा:
शुरुआत में, सर्वर संस्करण को निर्धारित करने के लिए एक कनेक्शन प्रयास किया जाता है और लक्ष्य मशीन का ऑपरेटिंग सिस्टम। यह कनेक्शन सेटिंग्स को मान्य करने की अनुमति देता है और विज़ार्ड को एक सार्थक कॉन्फ़िगरेशन प्रीसेट चुनने की अनुमति देता है। यदि यह प्रयास विफल हो जाता है, तब भी आप अगले चरण पर जा सकते हैं, जहां आप दूरस्थ सर्वर वातावरण के अनुरूप सेटिंग्स को और अधिक अनुकूलित कर सकते हैं।
रिमोट कनेक्शन कॉन्फ़िगरेशन पूर्ण होने के बाद, MySQL इंस्टेंस से कनेक्ट करना प्रारंभ करने के लिए कनेक्शन प्रोफ़ाइल पर डबल क्लिक करें। फिर, कॉन्फ़िगरेशन प्रबंधक अनुभाग खोलने के लिए इंस्टेंस -> विकल्प फ़ाइल पर जाएं। आपको निम्न स्क्रीनशॉट जैसा कुछ दिखना चाहिए:
कॉन्फ़िगरेशन फ़ाइल से सभी मौजूदा कॉन्फ़िगरेशन चर इस कॉन्फ़िगरेशन में पहले से लोड हैं प्रबंधक ताकि आप देख सकें कि इसके संबंधित मूल्यों के साथ कौन से विकल्प सक्षम किए गए हैं। कॉन्फ़िगरेशन को कई वर्गों में वर्गीकृत किया गया है - सामान्य, लॉगिंग, इनो डीबी, नेटवर्किंग और इसी तरह - जो वास्तव में उन विशिष्ट विशेषताओं पर ध्यान केंद्रित करने में हमारी सहायता करता है जिन्हें हम ट्विक या सक्षम करना चाहते हैं।
एक बार जब आप परिवर्तनों से संतुष्ट हो जाते हैं, और "लागू करें" पर क्लिक करने से पहले, सुनिश्चित करें कि आपने ड्रॉपडाउन मेनू (डिस्कार्ड बटन के ठीक बगल में) से सही MySQL समूह अनुभाग चुना है। एक बार लागू करने के बाद, आपको यह देखना चाहिए कि कॉन्फ़िगरेशन MySQL सर्वर पर लागू है जहां MySQL कॉन्फ़िगरेशन फ़ाइल में एक नई लाइन दिखाई देगी (यदि यह मौजूद नहीं है)।
ध्यान दें कि "लागू करें" बटन पर क्लिक करने से संबंधित परिवर्तन को MySQL रनटाइम में नहीं धकेला जाएगा। इंस्टेंस -> स्टार्टअप/शटडाउन पर जाकर नए कॉन्फ़िगरेशन परिवर्तनों को लोड करने के लिए MySQL सर्वर पर रीस्टार्ट ऑपरेशन करना होगा। यह आपके डेटाबेस अपटाइम को प्रभावित करेगा।
सभी लोडेड सिस्टम स्थिति और चर देखने के लिए, प्रबंधन -> स्थिति और सिस्टम चर पर जाएं:
ClusterControl कॉन्फ़िगरेशन प्रबंधन
ClusterControl कॉन्फ़िगरेशन प्रबंधक को प्रबंधित करें -> कॉन्फ़िगरेशन के अंतर्गत पहुँचा जा सकता है। ClusterControl कई महत्वपूर्ण कॉन्फ़िगरेशन फ़ाइलों को खींचता है और उन्हें ट्री संरचना में प्रदर्शित करता है। वितरित डेटाबेस सेटअप को कुशलतापूर्वक समझने और समस्या निवारण के लिए इन फ़ाइलों का एक केंद्रीकृत दृश्य महत्वपूर्ण है। निम्न स्क्रीनशॉट ClusterControl के कॉन्फ़िगरेशन फ़ाइल प्रबंधक को दिखाता है जिसने इस क्लस्टर के लिए सभी संबंधित कॉन्फ़िगरेशन फ़ाइलों को सिंटैक्स हाइलाइटिंग के साथ एक ही दृश्य में सूचीबद्ध किया है:
जैसा कि आप ऊपर दिए गए स्क्रीनशॉट से देख सकते हैं, ClusterControl MySQL को समझता है "!include "पैरामीटर और इससे जुड़ी सभी कॉन्फ़िगरेशन फ़ाइलों का पालन करेगा। उदाहरण के लिए, होस्ट 192.168.0.21, /etc/my.cnf और /etc/my.cnf.d/secrets-backup.cnf से दो MySQL कॉन्फ़िगरेशन फ़ाइलें खींची जा रही हैं। आप किसी अन्य संपादक टैब में एकाधिक कॉन्फ़िगरेशन फ़ाइलें खोल सकते हैं जिससे सामग्री की साथ-साथ तुलना करना आसान हो जाता है। ClusterControl OS टाइमस्टैम्प से अंतिम फ़ाइल संशोधन जानकारी भी खींचता है, जैसा कि टेक्स्ट एडिटर के नीचे दाईं ओर दिखाया गया है।
ClusterControl डेटाबेस क्लस्टर के कॉन्फ़िगरेशन विकल्प को बदलते समय दोहराव को समाप्त करता है। एकाधिक नोड्स पर कॉन्फ़िगरेशन विकल्प बदलना एकल इंटरफ़ेस के माध्यम से किया जा सकता है और तदनुसार डेटाबेस नोड पर लागू किया जाएगा। जब आप "पैरामीटर बदलें/सेट करें" पर क्लिक करते हैं, तो आप उन डेटाबेस उदाहरणों का चयन कर सकते हैं जिन्हें आप बदलना चाहते हैं और कॉन्फ़िगरेशन समूह, पैरामीटर और मान निर्दिष्ट करें:
आप कॉन्फ़िगरेशन फ़ाइल में एक नया पैरामीटर जोड़ सकते हैं या मौजूदा पैरामीटर को संशोधित कर सकते हैं . पैरामीटर को चुने गए डेटाबेस नोड्स के रनटाइम पर और कॉन्फ़िगरेशन फ़ाइल में लागू किया जाएगा यदि विकल्प चर सत्यापन प्रक्रिया को पास करता है। कुछ चरों के लिए सर्वर पुनरारंभ या कॉन्फ़िगरेशन पुनः लोड जैसे अनुवर्ती चरण की आवश्यकता हो सकती है, जिसे बाद में ClusterControl द्वारा सूचित किया जाएगा।
ClusterControl द्वारा कॉन्फ़िगर की गई सभी सेवाएँ ClusterControl नोड पर /usr/share/cmon/templates के अंतर्गत उपलब्ध आधार कॉन्फ़िगरेशन टेम्पलेट का उपयोग करती हैं। आप अपनी परिनियोजन नीति के अनुरूप फ़ाइल को सीधे संशोधित कर सकते हैं हालांकि, यह निर्देशिका पैकेज अपग्रेड के बाद बदल दी जाएगी। यह सुनिश्चित करने के लिए कि आपकी कस्टम कॉन्फ़िगरेशन टेम्प्लेट फ़ाइलें अपग्रेड के दौरान बनी रहें, अपनी टेम्प्लेट फ़ाइलों को /etc/cmon/templates निर्देशिका के अंतर्गत संग्रहीत करें। जब ClusterControl परिनियोजन के लिए टेम्पलेट फ़ाइल को लोड करता है, /etc/cmon/templates के अंतर्गत फ़ाइलें हमेशा /usr/share/cmon/templates के अंतर्गत फ़ाइलों पर उच्च प्राथमिकता रखती हैं। यदि दोनों निर्देशिकाओं में समान नाम वाली दो फ़ाइलें मौजूद हैं, तो /etc/cmon/templates के अंतर्गत स्थित फ़ाइल का उपयोग किया जाएगा।
क्लस्टर में सभी सर्वरों के लिए रनटाइम कॉन्फ़िगरेशन की जांच करने के लिए प्रदर्शन -> डीबी वेरिएबल्स पर जाएं:
ऊपर दिए गए स्क्रीनशॉट में लाल रंग में हाइलाइट की गई लाइन पर ध्यान दें? इसका मतलब है कि कॉन्फ़िगरेशन सभी नोड्स में समान नहीं है। यह एक विशेष डेटाबेस क्लस्टर में मेजबानों के बीच विन्यास अंतर पर अधिक दृश्यता प्रदान करता है।
कार्यक्षेत्र v ClusterControl:लाभ और हानि
प्रत्येक उत्पाद के फायदे और नुकसान का अपना सेट होता है। ClusterControl के लिए, चूंकि यह क्लस्टर और टोपोलॉजी को समझता है, यह एक साथ कई डेटाबेस नोड्स को प्रबंधित करने के लिए सबसे अच्छा कॉन्फ़िगरेशन प्रबंधक है। यह मारियाडीबी, पेरकोना के साथ-साथ सभी गैलेरा क्लस्टर वेरिएंट जैसे कई MySQL विक्रेताओं का समर्थन करता है। यह HAProxy, MariaDB MaxScale, ProxySQL और Keepalived के लिए डेटाबेस लोड बैलेंसर कॉन्फ़िगरेशन प्रारूप को भी समझता है। चूंकि क्लस्टर कंट्रोल को क्लस्टर के आयात/तैनाती की शुरुआत में पासवर्ड रहित एसएसएच कॉन्फ़िगरेशन की आवश्यकता होती है, इसलिए कॉन्फ़िगरेशन प्रबंधन को वर्कबेंच की तरह कोई रिमोट सेटअप की आवश्यकता नहीं होती है और मेजबान क्लस्टर कंट्रोल द्वारा प्रबंधित किए जाने के बाद यह आउट-ऑफ-द-बॉक्स काम करता है। ClusterControl द्वारा निष्पादित MySQL कॉन्फ़िगरेशन परिवर्तन स्वचालित रूप से (सभी समर्थित चर के लिए) रनटाइम में लोड किए जाएंगे और साथ ही दृढ़ता के लिए MySQL कॉन्फ़िगरेशन फ़ाइलों में लिखे जाएंगे। नुकसान के संदर्भ में, ClusterControl कॉन्फ़िगरेशन प्रबंधन कॉन्फ़िगरेशन विवरण के साथ नहीं आता है जो हमें यह अनुमान लगाने में मदद कर सकता है कि यदि हम कॉन्फ़िगरेशन विकल्प बदलते हैं तो क्या होगा। यह उन सभी प्लेटफार्मों का समर्थन नहीं करता है जो MySQL चला सकते हैं, विशेष रूप से केवल कुछ लिनक्स वितरण जैसे CentOS, RHEL, डेबियन और उबंटू।
MySQL वर्कबेंच विंडोज, फ्रीबीएसडी, मैकओएस, ओपन सोलारिस और लिनक्स जैसे कई ऑपरेटिंग सिस्टम के रिमोट मैनेजमेंट का समर्थन करता है। MySQL कार्यक्षेत्र मुफ्त में उपलब्ध है और इसका उपयोग अन्य MySQL विक्रेताओं जैसे Percona और MariaDB के साथ भी किया जा सकता है (यहाँ सूचीबद्ध नहीं होने के बावजूद, यह कुछ पुराने MariaDB संस्करणों के साथ काम करता है)। यह TAR बंडल से इंस्टालेशन के प्रबंधन का भी समर्थन करता है। यह कॉन्फ़िगरेशन फ़ाइल पथ, सेवा/स्टॉप कमांड और MySQL समूह अनुभागों के नामकरण पर कुछ अनुकूलन की अनुमति देता है। साफ-सुथरी विशेषताओं में से एक यह है कि MySQL वर्कबेंच निश्चित मूल्यों के लिए ड्रॉपडाउन मेनू का उपयोग करता है, जो उपयोगकर्ता से गलत कॉन्फ़िगरेशन के जोखिम को कम करने में एक बड़ी मदद हो सकती है, जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है:
नकारात्मक पक्ष पर, MySQL कार्यक्षेत्र एकाधिक होस्ट कॉन्फ़िगरेशन प्रबंधन का समर्थन नहीं करता है जहां आप प्रत्येक होस्ट पर अलग-अलग कॉन्फ़िगरेशन परिवर्तन करना होगा। यह स्पष्ट MySQL पुनरारंभ के बिना कॉन्फ़िगरेशन परिवर्तनों को रनटाइम में भी धक्का नहीं देता है जो डेटाबेस सेवा अपटाइम से समझौता कर सकता है।
निम्न तालिका सभी उल्लिखित बिंदुओं से लिए गए महत्वपूर्ण अंतर को सरल बनाती है:
कॉन्फ़िगरेशन पहलू | MySQL कार्यक्षेत्र | ClusterControl |
MySQL सर्वर के लिए समर्थित OS |
|
|
MySQL विक्रेता |
|
|
अन्य सॉफ़्टवेयर का समर्थन करें |
| |
कॉन्फ़िगरेशन/वेरिएबल विवरण | हां | नहीं |
कॉन्फ़िगर फ़ाइल सिंटैक्स हाइलाइटिंग | नहीं | हां |
कॉन्फ़िगरेशन मान ड्रॉप डाउन करें | हां | नहीं |
मल्टी-होस्ट कॉन्फ़िगरेशन | नहीं | हां |
रनटाइम में ऑटो पुश कॉन्फ़िगरेशन | नहीं | हां |
कॉन्फ़िगरेशन टेम्प्लेटिंग | नहीं | हां |
लागत | निःशुल्क | कॉन्फ़िगरेशन प्रबंधन के लिए आवश्यक सदस्यता |