MariaDB क्लस्टर 10.5 परिनियोजन को ClusterControl में संस्करण 1.8.1 से समर्थित किया गया है।
MariaDB 10.5 निम्न से सुसज्जित है:
-
अधिक विस्तृत विशेषाधिकार
-
InnoDB प्रदर्शन सुधार
-
गैलेरा क्लस्टर के लिए पूर्ण GTID समर्थन
-
प्रतिकृति और बाइनरी लॉग के लिए अधिक मेटाडेटा
-
अधिक SQL सिंटैक्स स्टेटमेंट (रिटर्निंग स्टेटमेंट INSERT, EXCEPT ALL और INTERSECT ALL,…)
-
MySQL 5.7 से मिलान करने के लिए प्रदर्शन स्कीमा अपडेट
-
S3 स्टोरेज इंजन
आप हमारे पिछले ब्लॉग पर और जांच कर सकते हैं
इस विशेष संस्करण रिलीज के बारे में अधिक जानकारी के लिए, देखें कि मारियाडीबी 10.5 में नया क्या है? संस्करण 10.4 से 10.5 तक के कुछ सबसे महत्वपूर्ण परिवर्तनों में शामिल हैं:
-
GTID संगतता
-
क्लस्टर असंगतता/त्रुटि मतदान
-
गैर-अवरुद्ध डीडीएल संचालन (केवल एंटरप्राइज़ संस्करण पर उपलब्ध)
-
ब्लैक बॉक्स (केवल एंटरप्राइज़ संस्करण पर उपलब्ध)
-
अपनी गैलेरा wsrep लाइब्रेरी को अपग्रेड किया, जिसके लिए 26.4.6 नवीनतम संस्करण है
शुरुआत में, इस रिलीज के लिए XA ट्रांजेक्शन सपोर्ट की उम्मीद थी (भ्रमित न हों क्योंकि XA ट्रांजेक्शन मारियाडीबी सर्वर द्वारा समर्थित हैं लेकिन गैलेरा क्लस्टर पर नहीं)। हालांकि, कुछ प्रदर्शन प्रभावों के कारण, मारियाडीबी गैलेरा क्लस्टर एक्सए लेनदेन का समर्थन नहीं करता है।
इस ब्लॉग में, हम चर्चा करेंगे कि उच्च उपलब्धता के लिए मारियाडीबी क्लस्टर 10.5 को कैसे परिनियोजित किया जाए।
उच्च उपलब्धता के लिए MariaDB क्लस्टर
मारियाडीबी क्लस्टर अनिवार्य रूप से एक गैलेरा क्लस्टर है जो मारियाडीबी कार्यान्वयन का उपयोग डेटाबेस परत के रूप में InnoDB या XtraDB इंजन के साथ इंटरफेस करने के लिए करता है। मारियाडीबी गैलेरा क्लस्टर मारियाडीबी के लिए एक वस्तुतः तुल्यकालिक मल्टी-मास्टर क्लस्टर है। यह केवल Linux पर उपलब्ध है और XtraDB/InnoDB स्टोरेज इंजन का समर्थन करता है (हालांकि MyISAM के लिए प्रयोगात्मक समर्थन है - wsrep_replicate_myisam सिस्टम चर देखें)। जब गैलेरा क्लस्टर का उपयोग किया जाता है, डेटाबेस पढ़ता है और लिखता है किसी भी नोड को निर्देशित किया जा सकता है। कोई भी व्यक्तिगत नोड संचालन में रुकावट के बिना और जटिल विफलता प्रक्रियाओं का उपयोग किए बिना खो सकता है।
मारियाडीबी क्लस्टर के भीतर अनुकूलित गैलेरा की प्रकृति के साथ, यह सिंक्रोनस प्रतिकृति, विफलता और पुन:सिंक्रनाइज़ेशन के साथ एक उच्च उपलब्धता समाधान है। यह बिना डेटा हानि, कोई गुलाम अंतराल, पढ़ने और लिखने की मापनीयता, और विभिन्न डेटा केंद्रों में उच्च उपलब्धता के लाभ लाता है।
MariaDB क्लस्टर 10.5 को परिनियोजित करना
MariaDB आपके MariaDB क्लस्टर 10.5 को स्थापित करने के लिए एक सीधा और आसान सेटअप प्रदान करता है। मैनुअल प्रक्रिया थकाऊ हो सकती है, लेकिन मारियाडीबी द्वारा प्रदान की गई स्वचालित स्क्रिप्ट के साथ, रिपॉजिटरी को आपके लक्षित डेटाबेस संस्करण, ओएस प्रकार और ओएस संस्करण के अनुसार स्थापित किया जा सकता है।
इस अभ्यास के लिए, मेरे पास निम्नलिखित आईपी पते के साथ निम्नलिखित 3-नोड गैलेरा क्लस्टर सेटअप है:192.168.40.210, 192.168.40.220, 192.168.40.230।
अपना भंडार सेट करें
जैसा कि पहले उल्लेख किया गया है, MariaDB के पास mariadb_repo_setup नाम की एक स्क्रिप्ट है, और इसका उपयोग करना आसान है। आप अपने डेटाबेस के लक्षित संस्करण, OS प्रकार और अपने OS संस्करण को निर्दिष्ट कर सकते हैं।
उदाहरण के लिए, मैं EL 8 का उपयोग करके इंस्टॉल कर रहा हूं:
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.5" --os-type=rhel --os-version=8
या इसे उबंटू फोकल फोसा में स्थापित करना,
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.5" --os-type=ubuntu --os-version=focal
ध्यान दें कि mariadb_repo_setup स्क्रिप्ट का उपयोग करते समय, इसे एक निर्भरता के रूप में पैकेज apt-transport-https की आवश्यकता होती है। इसलिए mariadb_repo_setup स्क्रिप्ट का लाभ उठाने से पहले पहले इस पैकेज को इंस्टॉल करें।
apt update
apt install apt-transport-https
अब, अपने तीन नोड्स को उनके OS के अनुसार कमांड चलाएँ। बेशक, मारियाडीबी संस्करण 10.5 होना चाहिए।
MySQL कॉन्फ़िगरेशन सेटअप करें
कॉन्फ़िगरेशन फ़ाइल आपके सर्वर संसाधनों, सर्वर परिवेश के प्रकार और असाइन किए गए IP पते पर निर्भर करती है। इस ब्लॉग के लिए, आप इस उत्पादन-तैयार मारियाडीबी क्लस्टर/पीएक्ससी कॉन्फ़िगरेशन सेटअप का उपयोग कर सकते हैं जिसे हमने क्लस्टरकंट्रोल का उपयोग करके अपने पेरकोना एक्स्ट्राडीबी क्लस्टर/मारियाडीबी क्लस्टर डेटाबेस में तैनात किया था। उल्लेखनीय चर जिनकी आपको आवश्यकता है या परिवर्तन के अधीन हैं वे निम्नलिखित हैं:
-
innodb_buffer_pool_size — बफर पूल को अपने सर्वर के 70% - 80% उपलब्ध रैम से सेट करें
-
wsrep_provider — गैलेरा संकलित पुस्तकालय का पथ। एंटरप्राइज़ लिनक्स के लिए, पथ होगा /usr/lib64/galera-4/libgalera_smm.so। जबकि डेबियन/उबंटू /usr/lib/galera/libgalera_smm.so में है।
-
wsrep_node_address — यह नोड आईपी पता है
-
wsrep_sst_method — या तो आप इसे बदल सकते हैं, लेकिन हम अनुशंसा करते हैं कि आप मारियाबैकअप का उपयोग करें। आपके द्वारा चुने जा सकने वाले संभावित मान हैं rsync, mysqldump, xtrabackup, xtrabackup-v2, mariabackup।
-
wsrep_cluster_name — आपके मारियाडीबी क्लस्टर का नाम। यह एक ही मारियाडीबी क्लस्टर में आपके सभी नोड्स के समान होना चाहिए।
-
wsrep_cluster_address — इसमें क्लस्टर के भीतर आपके नोड्स के पते शामिल हैं। यह एक मान्य IP, होस्टनाम या FQDN होना चाहिए।
-
wsrep_node_name — आपके नोड का नाम। नाम का उपयोग wsrep_sst_donor में पसंदीदा दाता के रूप में किया जा सकता है। ध्यान दें कि एक क्लस्टर में कई नोड्स का एक ही नाम हो सकता है।
एसएसटी करने के लिए, यदि आप चाहें तो निम्नलिखित अनुभागों [mysqldump], [xtrabackup], और [mysqld] के लिए उपयोगकर्ता और पासवर्ड बदल सकते हैं। इस अभ्यास के लिए, आइए इसे सरल रखें, और आप मानों को वैसे ही रहने दे सकते हैं जैसा है।
अब, कॉन्फ़िगरेशन फ़ाइल को कॉपी करें और इसे /etc/my.cnf पर रखें। अपने सभी तीन गैलेरा नोड्स के साथ ऐसा करें।
आवश्यक पैकेज स्थापित करना
सभी तीन गैलेरा नोड्स के लिए पैकेज स्थापित करें। अपने लक्षित OS परिवेश के आधार पर नीचे दिए गए आदेश का पालन करें।
आरएचईएल/रॉकी/अल्मालिनक्स के लिए:
sudo yum install MariaDB-server MariaDB-client galera-4 MariaDB-backup
डेबियन/उबंटू के लिए:
sudo apt update
sudo apt-get install mariadb-server galera-4 mariadb-client libmariadb3 mariadb-backup mariadb-common
एक बार इंस्टॉलेशन पूरा हो जाने के बाद, मारियाडीबी प्रक्रिया को रोकें और क्लस्टर को एकल नोड के रूप में प्रारंभ करें। यह आपके गैलेरा क्लस्टर को बूटस्ट्रैप करेगा। इस समय, मैं इसे नोड 192.168.40.210 पर चला रहा हूं।
$ /usr/bin/galera_new_cluster
एसएसटी/आईएसटी उपयोगकर्ता बनाएं
बैकअप उपयोगकर्ता बनाएं, जिसका उपयोग एसएसटी या आईएसटी के लिए किया जाएगा। नीचे दिए गए SQL कथनों को केवल उस पहले नोड पर चलाएँ जिसे आपने क्लस्टर शुरू किया है। इस स्तर पर, मैंने इसे 192.168.40.210 नोड में निष्पादित किया है।
CREATE USER [email protected] IDENTIFIED BY 'backuppassword';
GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backupuser'@'localhost';
इस समय, हम पहले से ही तैयार हैं और शेष नोड्स को जोड़ने के लिए तैयार हैं।
MariaDB सर्वर प्रारंभ करें
अब हम पहले नोड को पहले ही सेट कर चुके हैं। हम शेष नोड्स को जोड़ने के लिए तैयार हैं। बस, बस मारियाडीबी सेवा शुरू करें। बस नीचे कमांड चलाएँ:
systemctl start mariadb
शेष नोड्स के लिए एक-एक करके कमांड चलाएँ। इस समय, सभी नोड समन्वयन में हैं।
उच्च उपलब्धता के लिए अपने MariaDB क्लस्टर 10.5 के लिए स्टेरॉयड जोड़ना
संभवतः, उच्च उपलब्धता के लिए MariaDB क्लस्टर 10.5 को परिनियोजित करना उत्पादन सेटअप में आपकी आवश्यकताओं के लिए पर्याप्त नहीं हो सकता है। अपने अतिरेक के लिए Keepalived के साथ HAProxy स्थापित करने जैसे अधिक स्टेरॉयड जोड़ने से, आपके डेटाबेस परिवेश के लिए अधिक उच्च उपलब्धता प्राप्त होगी।
वांछित टोपोलॉजी और वातावरण प्राप्त करने के लिए HAProxy और Keepalived को सेट करने से अधिक परेशानी हो सकती है। हालांकि, आप इसे ClusterControl से स्वचालित कर सकते हैं। ClusterControl का उपयोग करके, आप अपने MariaDB क्लस्टर 10.5 को परिनियोजित कर सकते हैं और लोड संतुलन के लिए अधिक समाधान जोड़ सकते हैं, जैसे ProxySQL, MaxScale, या garbd। आपदा की स्थिति में अतिरेक और स्वतः विफलता समाधान जोड़ने के लिए आप Keepalived को अपने क्लस्टर में जोड़ सकते हैं।
आप ClusterControl का निःशुल्क परीक्षण डाउनलोड कर सकते हैं जो आपको इन HA समाधानों को परिनियोजित करने और ग्लास के एक ही फलक से आपके संपूर्ण डेटाबेस संचालन को प्रबंधित करने की अनुमति देगा। हम आपके MariaDB 10.5 क्लस्टर को ClusterControl के साथ परिनियोजित करने के तरीके के बारे में जानेंगे।
MariaDB 10.5 क्लस्टर को ClusterControl के साथ परिनियोजित करना
एक बार जब आप ClusterControl स्थापित कर लेते हैं, तो ऊपरी दाएं कोने में स्थित आइकन पर क्लिक करें, और आपको नीचे की तरह परिनियोजन विज़ार्ड दिखाई देगा।
आप इसे आसानी से सेट कर सकते हैं। बस UI के प्रवाह के आधार पर चरणों की श्रृंखला का पालन करें।
लोड संतुलन प्रबंधन के लिए HAProxy परिनियोजित करें
इस बिंदु पर, मुझे लगता है कि आपने अपना मारियाडीबी क्लस्टर 10.5 पूरी तरह से सेट कर लिया है। अब, HAProxy को परिनियोजित करते हैं:
वैकल्पिक रूप से, आप मैनेज → लोड बैलेंसर → HAProxy पर जा सकते हैं। पी>
फिर उस पते का चयन करें या टाइप करें जहां HAProxy स्थापित किया जाना है और अपने गैलेरा नोड्स का चयन करें जिनकी निगरानी HAProxy द्वारा की जाएगी। नीचे दिया गया उदाहरण देखें:
अधिक उपलब्धता जोड़ने के लिए HAProxy के कम से कम दो परिनियोजन जोड़ें। जब भी आपका कोई HAProxy नीचे जाता है, तो आपका आवेदन दूसरे नोड पर पहुंच जाएगा जो अभी भी उपलब्ध है या ऑनलाइन है। यह बहुत महत्वपूर्ण है, खासकर जब आपदा या आपदा की घटनाओं से अलग डेटाबेस या सिस्टम अपग्रेड को संभालते हैं।
रख-रखाव तैनात करें
आप ऊपर समान प्रक्रिया का उपयोग Keepalived को परिनियोजित करने के लिए करेंगे, जैसा कि नीचे दिखाया गया है:
अगर आपने गौर किया, तो मेरे पास दो HAProxy इंस्टेंस हैं जिनके लिए मैं Keepalived इंस्टॉल करूंगा , जो हर नोड में मौजूद होगा जहां HAProxy चल रहा है।
उच्च उपलब्धता के साथ अपने MariaDB क्लस्टर 10.5 को अंतिम रूप देना
अब जब हमारे पास सब कुछ सेट हो गया है, तो आपके पास ऐसा वातावरण होना चाहिए जो इस तरह दिखाई दे:
रैपिंग अप
आपके MariaDB 10.5 क्लस्टर के लिए यह सेटअप आपको कई नौ के साथ उच्च उपलब्धता प्राप्त करने का लाभ देता है। HAProxy आपको अपने पढ़ने और लिखने के पृथक्करण के साथ अधिक भार संतुलन क्षमता प्रदान करता है, और Keepalived यह सुनिश्चित करता है कि यदि आपके HAProxy में से एक की मृत्यु हो जाती है, तो यह अगले उपलब्ध नोड में विफल हो जाएगा। आपका एप्लिकेशन केवल वर्चुअल आईपी पते (जो VRRP का अनुसरण करता है) से कनेक्ट होगा और इसके लिए अतिरिक्त कॉन्फ़िगरेशन या सेटअप की आवश्यकता नहीं होगी।
केवल एक पोर्ट में खेलकर और अधिक लचीलापन जोड़ने और पढ़ने/लिखने के अलगाव के लिए, आप HAProxy को ProxySQL से बदल सकते हैं। उच्च उपलब्धता के लिए एक आदर्श सेटअप प्राप्त करना मुश्किल हो सकता है, और प्रत्येक में इसकी कमियां होती हैं। हालांकि, जो सबसे ज्यादा मायने रखता है वह यह है कि कम से कम डाउनटाइम हासिल किया जाता है।
एक अत्यधिक उपलब्ध मारियाडीबी सेटअप के निर्माण के बारे में अधिक युक्तियों के लिए, मारियाडीबी प्रतिकृति को परिनियोजित करने पर इस अंश को देखें।
यदि आप डेटाबेस के रुझानों और सर्वोत्तम प्रथाओं पर अद्यतित रहना चाहते हैं, तो हमारे न्यूज़लेटर की सदस्यता लें और ट्विटर और लिंक्डइन पर हमें फॉलो करें।