ओपन सोर्स डेटाबेस के उपयोगकर्ताओं को अक्सर अपने उत्पादन डेटाबेस वातावरण को प्रबंधित करने के लिए टूल और होमग्रोन स्क्रिप्ट के मिश्रण का उपयोग करना पड़ता है। हालाँकि, समाधान में स्वयं की स्क्रिप्ट होने के बावजूद, इसे बनाए रखना और नई डेटाबेस सुविधाओं, सुरक्षा आवश्यकताओं या उन्नयन के साथ बनाए रखना कठिन है। MySQL 8.0 सहित डेटाबेस के नए प्रमुख संस्करणों के साथ, यह कार्य और भी कठिन हो सकता है।
ClusterControl के केंद्र में इसकी स्वचालन कार्यक्षमता है जो आपको नियमित रूप से निष्पादित करने वाले डेटाबेस कार्यों को स्वचालित करने देती है, जैसे नए डेटाबेस को परिनियोजित करना, नए नोड्स जोड़ना और स्केल करना, बैकअप प्रबंधित करना, उच्च उपलब्धता और विफलता, टोपोलॉजी परिवर्तन, अपग्रेड, और बहुत कुछ। स्वचालित प्रक्रियाएं सटीक, सुसंगत और दोहराने योग्य होती हैं ताकि आप उत्पादन परिवेश में परिवर्तन के जोखिम को कम कर सकें।
इसके अलावा, क्लस्टरकंट्रोल के साथ, MySQL उपयोगकर्ता अब विक्रेता लॉक-इन के अधीन नहीं हैं; कुछ ऐसा जो हाल ही में कई लोगों ने पूछा था। आप एक ही कंसोल से विभिन्न प्रकार के MySQL संस्करणों और विक्रेताओं को नि:शुल्क परिनियोजित और आयात कर सकते हैं।
इस लेख में, हम आपको दिखाएंगे कि MySQL 8.0 को युद्ध परीक्षण कॉन्फ़िगरेशन के साथ कैसे परिनियोजित किया जाए और इसे स्वचालित तरीके से प्रबंधित किया जाए। आप यहां पाएंगे कि कैसे करना है:
- ClusterControl इंस्टालेशन
- MySQL परिनियोजन प्रक्रिया
- नया क्लस्टर परिनियोजित करें
- मौजूदा क्लस्टर आयात करें
- MySQL को स्केल करना
- MySQL को सुरक्षित करना
- निगरानी और रुझान
- बैकअप और पुनर्प्राप्ति
- नोड और क्लस्टर स्वतः पुनर्प्राप्ति (स्वतः विफलता)
ClusterControl इंस्टालेशन
ClusterControl से शुरू करने के लिए आपको एक समर्पित वर्चुअल मशीन या होस्ट की आवश्यकता होती है। VM और समर्थित सिस्टम आवश्यकताएँ यहाँ वर्णित हैं। बेस वीएम 2 जीबी, 2 कोर और डिस्क स्पेस 20 जीबी स्टोरेज स्पेस से शुरू हो सकता है, या तो ऑन-प्रिमाइसेस या क्लाउड में।
प्रलेखन में इंस्टॉलेशन का अच्छी तरह से वर्णन किया गया है लेकिन मूल रूप से, आप एक इंस्टॉलेशन स्क्रिप्ट डाउनलोड करते हैं जो आपको चरणों के माध्यम से चलता है। विज़ार्ड स्क्रिप्ट आंतरिक डेटाबेस सेट करती है, आवश्यक पैकेज, रिपॉजिटरी और अन्य आवश्यक बदलाव स्थापित करती है। इंटरनेट एक्सेस के बिना वातावरण के लिए, आप ऑफ़लाइन स्थापना प्रक्रिया का उपयोग कर सकते हैं।
ClusterControl को डेटाबेस होस्ट तक SSH एक्सेस की आवश्यकता होती है, और निगरानी एजेंट-आधारित या एजेंट रहित हो सकती है। प्रबंधन एजेंट रहित है।
सभी लक्ष्य नोड्स (ClusterControl और सभी डेटाबेस होस्ट) के लिए पासवर्ड रहित SSH सेटअप करने के लिए, ClusterControl सर्वर पर निम्न कमांड चलाएँ:
$ ssh-keygen -t rsa # press enter on all prompts
$ ssh-copy-id -i ~/.ssh/id_rsa [ClusterControl IP address]
$ ssh-copy-id -i ~/.ssh/id_rsa [Database nodes IP address] # repeat this to all target database nodes
क्लस्टर नियंत्रण को आज़माने के सबसे सुविधाजनक तरीकों में से एक शायद इसे डॉकटर कंटेनर में चलाने का विकल्प है।
docker run -d --name clustercontrol \
--network db-cluster \
--ip 192.168.10.10 \
-h clustercontrol \
-p 5000:80 \
-p 5001:443 \
-v /storage/clustercontrol/cmon.d:/etc/cmon.d \
-v /storage/clustercontrol/datadir:/var/lib/mysql \
-v /storage/clustercontrol/sshkey:/root/.ssh \
-v /storage/clustercontrol/cmonlib:/var/lib/cmon \
-v /storage/clustercontrol/backups:/root/backups \
severalnines/clustercontrol
सफल परिनियोजन के बाद, आपको {होस्ट का IP पता}:{होस्ट का पोर्ट} पर ClusterControl वेब UI तक पहुंचने में सक्षम होना चाहिए, उदाहरण के लिए:
HTTP: http://192.168.10.100:5000/clustercontrol
HTTPS: https://192.168.10.100:5001/clustercontrol
डिप्लॉयमेंट और स्केलिंग
MySQL 8.0 परिनियोजित करें
एक बार जब हम ClusterControl इंटरफ़ेस में प्रवेश कर जाते हैं, तो सबसे पहले एक नया डेटाबेस परिनियोजित करना या किसी मौजूदा डेटाबेस को आयात करना होता है। नया संस्करण 1.7.2 Oracle सामुदायिक संस्करण और Percona सर्वर के संस्करण 8.0 के लिए समर्थन प्रस्तुत करता है। इस ब्लॉग को लिखते समय, वर्तमान संस्करण Oracle MySQL Server 8.0.15 और Percona Server for MySQL 8.0-15 हैं। विकल्प चुनें “डेटाबेस क्लस्टर परिनियोजित करें ” और दिखाई देने वाले निर्देशों का पालन करें।
ClusterControl:डेटाबेस क्लस्टर परिनियोजित करेंMySQL चुनते समय, हमें SSH द्वारा अपने सर्वर से कनेक्ट करने के लिए उपयोगकर्ता, कुंजी या पासवर्ड और पोर्ट निर्दिष्ट करना होगा। हमें अपने नए क्लस्टर के लिए एक नाम की भी आवश्यकता है और यदि हम चाहते हैं कि ClusterControl हमारे लिए संबंधित सॉफ़्टवेयर और कॉन्फ़िगरेशन स्थापित करे।
एसएसएच एक्सेस जानकारी सेट करने के बाद, हमें अपने डेटाबेस तक पहुंचने के लिए डेटा दर्ज करना होगा। हम यह भी निर्दिष्ट कर सकते हैं कि किस भंडार का उपयोग करना है। डेटाबेस सर्वर और क्लस्टर के लिए रिपॉजिटरी कॉन्फ़िगरेशन एक महत्वपूर्ण पहलू है। ClusterControl का उपयोग करते हुए डेटाबेस सर्वर/क्लस्टर परिनियोजित करते समय आपके पास तीन प्रकार के रिपॉजिटरी हो सकते हैं:
- विक्रेता भंडार का उपयोग करें
डेटाबेस विक्रेता के पसंदीदा सॉफ़्टवेयर रिपॉजिटरी की स्थापना और उपयोग करके सॉफ़्टवेयर का प्रावधान करें। ClusterControl डेटाबेस विक्रेता रिपॉजिटरी द्वारा प्रदान किए गए नवीनतम संस्करण को स्थापित करेगा। - विक्रेता भंडार सेट न करें
पहले से मौजूद सॉफ़्टवेयर रिपॉजिटरी का उपयोग करके प्रोविजन सॉफ़्टवेयर जो पहले से ही नोड्स पर स्थापित है। उपयोगकर्ता को प्रत्येक डेटाबेस नोड पर मैन्युअल रूप से सॉफ़्टवेयर रिपॉजिटरी स्थापित करनी होती है और ClusterControl इस रिपॉजिटरी का उपयोग परिनियोजन के लिए करेगा। यह अच्छा है अगर डेटाबेस नोड्स इंटरनेट कनेक्शन के बिना चल रहे हैं। - प्रतिबिंबित भंडारों का उपयोग करें (नया भंडार बनाएं)
मौजूदा डेटाबेस विक्रेता के रिपॉजिटरी को बनाएं और मिरर करें और फिर स्थानीय मिरर किए गए रिपोजिटरी का उपयोग करके तैनात करें। यह आपको सॉफ़्टवेयर पैकेज के वर्तमान संस्करणों को "फ्रीज" करने की अनुमति देता है।
अगले चरण में, हमें अपने सर्वर को उस क्लस्टर में जोड़ना होगा जिसे हम बनाने जा रहे हैं। अपने सर्वर जोड़ते समय, हम IP या होस्टनाम दर्ज कर सकते हैं और फिर नेटवर्क इंटरफ़ेस चुन सकते हैं। बाद के लिए, हमारे पास एक DNS सर्वर होना चाहिए या हमारे MySQL सर्वर को हमारे ClusterControl की स्थानीय रिज़ॉल्यूशन फ़ाइल (/etc/hosts) में जोड़ा है, ताकि यह संबंधित नाम को हल कर सके जिसे आप जोड़ना चाहते हैं।
स्क्रीन पर हम एक मास्टर और दो स्लेव सर्वर के साथ एक उदाहरण परिनियोजन देख सकते हैं। सर्वर सूची गतिशील है और आपको परिष्कृत टोपोलॉजी बनाने की अनुमति देती है जिसे प्रारंभिक स्थापना के बाद बढ़ाया जा सकता है।
ClusterControl:टोपोलॉजी को परिभाषित करेंजब सब सेट हो जाए तो डिप्लॉय बटन को हिट करें। आप ClusterControl गतिविधि मॉनीटर से हमारे नए प्रतिकृति सेटअप के निर्माण की स्थिति की निगरानी कर सकते हैं। परिनियोजन प्रक्रिया लोकप्रिय mysql टूल जैसे percona टूलकिट और percona-xtradb-backup की स्थापना का भी ध्यान रखेगी।
ClusterControl:क्लस्टर विवरण परिनियोजित करेंएक बार कार्य समाप्त हो जाने के बाद, हम अपने क्लस्टर को मुख्य क्लस्टरकंट्रोल स्क्रीन और टोपोलॉजी व्यू पर देख सकते हैं। ध्यान दें कि हमने डेटाबेस इंस्टेंस के सामने एक लोड बैलेंसर (ProxySQL) भी जोड़ा है।
ClusterControl:टोपोलॉजीजैसा कि हम छवि में देख सकते हैं, एक बार जब हमारा क्लस्टर बन जाता है, तो हम सीधे टोपोलॉजी सेक्शन से उस पर कई कार्य कर सकते हैं।
ClusterControl:टोपोलॉजी मैनेजमेंटनया क्लस्टर आयात करें
हमारे पास मौजूदा सेटअप को ClusterControl में आयात करके प्रबंधित करने का विकल्प भी है। ऐसा वातावरण ClusterControl या अन्य विधियों (कठपुतली, रसोइया, ansible, docker…) द्वारा बनाया जा सकता है। प्रक्रिया सरल है और विशेष ज्ञान की आवश्यकता नहीं है।
ClusterControl:मौजूदा क्लस्टर आयात करेंसबसे पहले, हमें अपने सर्वर पर एसएसएच एक्सेस क्रेडेंशियल दर्ज करना होगा। फिर हम अपने डेटाबेस, सर्वर डेटा निर्देशिका और संस्करण में एक्सेस क्रेडेंशियल दर्ज करते हैं। हम आईपी या होस्टनाम द्वारा नोड्स जोड़ते हैं, उसी तरह जब हम तैनात करते हैं, और आयात पर दबाते हैं। एक बार कार्य पूरा हो जाने के बाद, हम अपने क्लस्टर को ClusterControl से प्रबंधित करने के लिए तैयार हैं। इस बिंदु पर हम नोड या क्लस्टर ऑटो रिकवरी के विकल्पों को भी परिभाषित कर सकते हैं।
MySQL को स्केल करना
ClusterControl के साथ, सर्वर में अधिक सर्वर जोड़ना एक आसान कदम है। आप इसे GUI या CLI से कर सकते हैं। अधिक उन्नत उपयोगकर्ताओं के लिए आप क्लस्टरकंट्रोल डेवलपर स्टूडियो का उपयोग कर सकते हैं और अपने क्लस्टर को स्वचालित रूप से विस्तारित करने के लिए संसाधन आधार शर्त लिख सकते हैं।
सेटअप में एक नया नोड जोड़ते समय, आपके पास मौजूदा बैकअप का उपयोग करने का विकल्प होता है, इसलिए अतिरिक्त कार्य के साथ प्रोडक्शन मास्टर नोड को अभिभूत करने की कोई आवश्यकता नहीं है।
ClusterControl स्केलिंग MySQLलोड बैलेंसर्स (ProxySQL, Maxscale, HAProxy) के लिए अंतर्निहित समर्थन के साथ, आप MySQL नोड्स को गतिशील रूप से जोड़ और हटा सकते हैं। यदि आप इस बारे में अधिक गहराई से जानना चाहते हैं कि MySQL प्रतिकृति और क्लस्टरिंग को सर्वोत्तम तरीके से कैसे प्रबंधित किया जाए, तो कृपया HA प्रतिकृति श्वेतपत्र के लिए MySQL प्रतिकृति पढ़ें।
MySQL को सुरक्षित करना
MySQL बहुत कम सुरक्षा के साथ आता है। हाल के संस्करण के साथ इसमें सुधार किया गया है हालांकि उत्पादन ग्रेड सिस्टम को अभी भी डिफ़ॉल्ट my.cnf कॉन्फ़िगरेशन में ट्वीक की आवश्यकता है।
ClusterControl मानवीय त्रुटि को दूर करता है और आपके डेटाबेस को हैक और अन्य खतरों से स्वचालित रूप से सुरक्षित रखने के लिए सुरक्षा सुविधाओं के एक सूट तक पहुंच प्रदान करता है।
ClusterControl MySQL कनेक्शन के लिए SSL समर्थन सक्षम करता है। एसएसएल को सक्षम करने से अनुप्रयोगों (क्लस्टरकंट्रोल सहित) और डेटाबेस के बीच संचार के लिए सुरक्षा का एक और स्तर जुड़ जाता है। MySQL क्लाइंट डेटाबेस सर्वर से एन्क्रिप्टेड कनेक्शन खोलते हैं और किसी भी संवेदनशील जानकारी को स्थानांतरित करने से पहले उन सर्वरों की पहचान सत्यापित करते हैं।
ClusterControl सभी आवश्यक चरणों को निष्पादित करेगा, जिसमें सभी डेटाबेस नोड्स पर प्रमाणपत्र बनाना शामिल है। ऐसे प्रमाणपत्रों को बाद में कुंजी प्रबंधन टैब में रखा जा सकता है।
ClusterControl:Manager SSL कुंजियाँPercona सर्वर इंस्टॉलेशन ऑडिट प्लगइन के लिए अतिरिक्त समर्थन के साथ आता है। आपके डेटाबेस वातावरण की निगरानी के लिए निरंतर ऑडिटिंग एक अनिवार्य कार्य है। अपने डेटाबेस का ऑडिट करके, आप की गई कार्रवाइयों या एक्सेस की गई सामग्री के लिए जवाबदेही हासिल कर सकते हैं। इसके अलावा, ऑडिट में कुछ महत्वपूर्ण सिस्टम घटक शामिल हो सकते हैं, जैसे कि वित्तीय डेटा से जुड़े एसओएक्स, या ईयू जीडीपीआर विनियमन जैसे नियमों के सटीक सेट का समर्थन करने के लिए। निर्देशित प्रक्रिया आपको यह चुनने देती है कि क्या ऑडिट किया जाना चाहिए और ऑडिट लॉग फ़ाइलों को कैसे बनाए रखा जाए।
ClusterControl:Percona Server 8.0 के लिए ऑडिट लॉग सक्षम करेंनिगरानी
डेटाबेस सिस्टम के साथ काम करते समय, आपको उनकी निगरानी करने में सक्षम होना चाहिए। यह आपको रुझानों की पहचान करने, अपग्रेड या सुधार की योजना बनाने या किसी भी समस्या या त्रुटि के लिए प्रभावी ढंग से प्रतिक्रिया करने में सक्षम करेगा।
नया ClusterControl 1.7.2 MySQL 8.0 के लिए अद्यतन उच्च-रिज़ॉल्यूशन मॉनिटरिंग के साथ आता है। यह PromQL क्वेरी भाषा के साथ डेटा स्टोर के रूप में Prometheus का उपयोग कर रहा है। डैशबोर्ड की सूची में MySQL सर्वर जनरल, MySQL सर्वर कैश, MySQL InnoDB मेट्रिक्स, MySQL प्रतिकृति मास्टर, MySQL प्रतिकृति स्लेव, सिस्टम अवलोकन और क्लस्टर अवलोकन डैशबोर्ड शामिल हैं।
ClusterControl Prometheus एजेंटों को स्थापित करता है, मेट्रिक्स को कॉन्फ़िगर करता है और अपने GUI के माध्यम से Prometheus निर्यातक कॉन्फ़िगरेशन तक पहुंच बनाए रखता है, ताकि आप निर्यातकों (Prometheus) के लिए कलेक्टर फ़्लैग जैसे पैरामीटर कॉन्फ़िगरेशन को बेहतर ढंग से प्रबंधित कर सकें। हमने विवरण में वर्णन किया है कि प्रोमेथियस और क्लस्टर कंट्रोल के साथ MySQL की निगरानी कैसे करें लेख में हाल ही में निगरानी की जा सकती है।
ClusterControl:डैशबोर्डचेतावनी
एक डेटाबेस ऑपरेटर के रूप में, जब भी हमारे डेटाबेस में कुछ महत्वपूर्ण होता है, तो हमें सूचित करने की आवश्यकता होती है। ClusterControl में अलर्ट प्राप्त करने के तीन मुख्य तरीकों में शामिल हैं:
- ईमेल सूचनाएं
- एकीकरण
- सलाहकार
आप उपयोगकर्ता स्तर पर ईमेल सूचनाएं सेट कर सकते हैं। सेटिंग> ईमेल सूचनाएं . पर जाएं . जहां आप गंभीरता और भेजे जाने वाले अलर्ट के प्रकार के बीच चयन कर सकते हैं।
ClusterControl:अधिसूचनाअगली विधि एकीकरण सेवाओं का उपयोग करना है। यह विशिष्ट श्रेणी की घटनाओं को अन्य सेवा जैसे सर्विस नाउ टिकट, स्लैक, पेजरड्यूटी इत्यादि को पास करने के लिए है ताकि आप अपने संगठन के भीतर एक उन्नत अधिसूचना विधियां और एकीकरण बना सकें।
ClusterControl:एकीकरणआखिरी में सलाहकार अनुभाग में परिष्कृत मीट्रिक विश्लेषण शामिल करना है, जहां आप बुद्धिमान जांच और ट्रिगर बना सकते हैं।
ClusterControl:स्वचालित सलाहकारबैकअप और पुनर्प्राप्ति
अब जब आपका MySQL चालू हो गया है, और आपकी निगरानी हो गई है, तो यह अगले चरण का समय है:सुनिश्चित करें कि आपके पास अपने डेटा का बैकअप है।
ClusterControl:बैकअप बनाएंClusterControl शेड्यूलिंग और रचनात्मक रिपोर्ट के समर्थन के साथ MySQL बैकअप प्रबंधन के लिए एक इंटरफ़ेस प्रदान करता है। यह आपको बैकअप विधियों के लिए दो विकल्प देता है।
- तार्किक:mysqldump
- बाइनरी:xtrabackup/mariabackup
एक अच्छी बैकअप रणनीति किसी भी डेटाबेस प्रबंधन प्रणाली का एक महत्वपूर्ण हिस्सा है। ClusterControl बैकअप और पुनर्प्राप्ति/पुनर्स्थापना के लिए कई विकल्प प्रदान करता है।
ClusterControl:बैकअप शेड्यूल और बैकअप रिपोजिटरीClusterControl बैकअप प्रतिधारण विन्यास योग्य है; आप अपने बैकअप को किसी भी समयावधि के लिए बनाए रखना या बैकअप को कभी नहीं हटाना चुन सकते हैं। दुष्ट तत्वों के खिलाफ आपके बैकअप को सुरक्षित करने के लिए AES256 एन्क्रिप्शन कार्यरत है। तेजी से पुनर्प्राप्ति के लिए, बैकअप को सीधे एक नए क्लस्टर में पुनर्स्थापित किया जा सकता है - ClusterControl एक नए डेटाबेस सेटअप के लॉन्च से लेकर डेटा की पुनर्प्राप्ति तक, प्रक्रिया से त्रुटि-प्रवण मैन्युअल चरणों को हटाते हुए, पूरी पुनर्स्थापना प्रक्रिया को संभालता है।
पूरा होने पर बैकअप को स्वचालित रूप से सत्यापित किया जा सकता है, और फिर क्लाउड स्टोरेज सेवाओं (AWS, Azure और Google) पर अपलोड किया जा सकता है। डेटासेंटर में स्थानीय बैकअप के साथ-साथ क्लाउड में अपलोड किए गए बैकअप के लिए विभिन्न अवधारण नीतियों को परिभाषित किया जा सकता है।
नोड और क्लस्टर स्वतः पुनर्प्राप्ति
ClusterControl विफलता का पता लगाने और संभालने के लिए उन्नत समर्थन प्रदान करता है। यह आपको अपने HA स्टैक के साथ एकीकृत करने के लिए विभिन्न प्रॉक्सी को तैनात करने की भी अनुमति देता है ताकि एप्लिकेशन कनेक्शन स्ट्रिंग या डीएनएस प्रविष्टि को नए मास्टर नोड पर रीडायरेक्ट करने के लिए समायोजित करने की कोई आवश्यकता न हो।
जब मास्टर सर्वर डाउन होता है, तो ClusterControl स्वचालित फ़ेलओवर करने के लिए एक कार्य तैयार करेगा। ClusterControl एक नया मास्टर चुनने, फेल-ओवर स्लेव सर्वर को परिनियोजित करने और लोड बैलेंसर्स को कॉन्फ़िगर करने के लिए सभी पृष्ठभूमि कार्य करता है।
ClusterControl:नोड स्वतः पुनर्प्राप्तिClusterControl स्वचालित विफलता को निम्नलिखित सिद्धांतों के साथ डिज़ाइन किया गया था:
- सुनिश्चित करें कि आपके विफल होने से पहले मास्टर वास्तव में मर चुका है
- केवल एक बार विफलता
- असंगत दास को विफल न करें
- केवल मास्टर को लिखें
- असफल मास्टर को स्वचालित रूप से पुनर्प्राप्त न करें
अंतर्निहित एल्गोरिदम के साथ, फ़ेलओवर अक्सर बहुत तेज़ी से किया जा सकता है ताकि आप अपने डेटाबेस परिवेश के लिए उच्चतम SLA का आश्वासन दे सकें।
प्रक्रिया अत्यधिक विन्यास योग्य है। यह कई मापदंडों के साथ आता है जिसका उपयोग आप अपने पर्यावरण की बारीकियों के लिए पुनर्प्राप्ति को अपनाने के लिए कर सकते हैं। विभिन्न विकल्पों में से आप प्रतिकृति_स्टॉप_ऑन_एरर, प्रतिकृति_ऑटो_रेबिल्ड_स्लेव, प्रतिकृति_फेलओवर_ब्लैकलिस्ट, प्रतिकृति_फेलओवर_व्हाइटलिस्ट, प्रतिकृति_स्किप_apply_missing_txs, प्रतिकृति_ऑनफेल_फेलओवर_स्क्रिप्ट और कई अन्य पा सकते हैं।