MariaDB 10.5 को जून 2020 में GA के रूप में जारी किया गया था। रिलीज़ में, Amazon S3 या किसी तीसरे पक्ष के सार्वजनिक या निजी क्लाउड के लिए समर्थन जोड़ा गया है जो S3 API का समर्थन करता है। इसमें विशेषाधिकारों के लिए परिष्कृत हैंडलिंग भी शामिल है जो इसकी ग्रैन्युलैरिटी का विस्तार करता है जो उदाहरण के लिए एक डीबीए को आपके डेटाबेस की कड़ी सुरक्षा के लिए किसी विशेष डेटाबेस उपयोगकर्ता पर सीमित विशेषाधिकार प्रदान करने में सक्षम बनाता है।
MariaDB 10.5 ने भी अपने प्रदर्शन के लिए InnoDB स्टोरेज इंजन के साथ अपने सुधारों का दावा किया है और कुछ नए चर भी प्रस्तुत किए गए हैं लेकिन प्रमुख पदावनत चर को पदावनत या पूरी तरह से हटा दिया गया है। उदाहरण के लिए, ध्यान दें कि मारियाडीबी 10.5 में, innodb_buffer_pool_instances को पहले से ही पदावनत के रूप में चिह्नित किया जा चुका है, जबकि इसे संस्करण 10.6 में हटाने के लिए सेट किया गया है। यदि आप उत्सुक हैं कि वे जो भी कारण कहते हैं, कृपया MDEV-15058 देखें।
इन सभी परिवर्तनों के साथ, मारियाडीबी 10.4 को मारियाडीबी 10.5 में अपग्रेड करने के तरीके के बारे में एक गाइड प्रदान करने के लिए इस ब्लॉग को वितरित करना सबसे अच्छा है। अपग्रेड करने के लिए आपको किन-किन बातों पर ध्यान देना चाहिए, इस पर हम चरण-दर-चरण कदम उठाएंगे।
अपग्रेड करने से पहले आवश्यक चीज़ें
परीक्षण किए बिना अपने डेटाबेस को उत्पादन में लाइव अपग्रेड करना हमेशा सबसे अच्छा तरीका नहीं है। यह सरल शब्दजाल उस शब्द को परिभाषित करता है जिसे हम SNAFU कहते हैं। आप शब्द खोजने के लिए Google को हिट कर सकते हैं लेकिन मूल रूप से, सामान्य स्वास्थ्य विशेष रूप से सामान्य रूप से कार्य करने वाली प्रणालियों को छूना हमेशा सर्वोत्तम नहीं होता है। हालांकि, यह हमेशा नहीं होता है कि आपके सिस्टम को स्थिर रहना है, इसे सुरक्षा पैच, बग फिक्स और नए संस्करण रिलीज पर मौजूद अग्रिम सुविधाओं का लाभ उठाने के लिए अपग्रेड करना होगा। तो इस मामले में, आपके पास हमेशा एक फेलबैक तंत्र की योजना बनाई जाती है और अपग्रेड से पहले सेटअप किया जाता है। यदि सिस्टम को अपग्रेड करने में ऐसी समस्याएं आ जाती हैं, जिन पर ध्यान नहीं दिया गया, तो यह आपके व्यवसाय पर प्रभाव डाल सकती है।
हमेशा अपने डेटाबेस का बैकअप बनाएं
इस मामले में, हमेशा अपने डेटा का बैकअप प्रदान करें। आप mariabackup या mydumper जैसे टूल का उपयोग कर सकते हैं या, यदि आप ClusterControl उपयोगकर्ता हैं, तो डेटाबेस बैकअप मैनेजमेंट टूल का उपयोग करें। यदि आप अभी तक तैयार नहीं हैं कि आपको किस प्रकार के बैकअप की आवश्यकता है, तो आपको बैकअप लेते समय सर्वोत्तम प्रथाओं की जांच करनी पड़ सकती है।
परीक्षा...परीक्षा...और फिर से परीक्षण करें
जबकि बैकअप फ़ीड को डेटा प्रदान करता है यदि आपको अप्रत्याशित समस्याएं होने पर इसकी प्राथमिक स्थिति में पुनर्स्थापित करने की आवश्यकता होती है, तो एक प्रमुख रिलीज में अपग्रेड करने के लिए पहले एक विकास या स्टेजिंग मशीन में परीक्षण किया जाना चाहिए। बड़ी उद्यम कंपनियों के लिए, लक्षित क्यूए वातावरण या स्टेजिंग वातावरण पर हमेशा एक प्रतिगमन परीक्षण करना आम बात है, जहां डेटाबेस सर्वर को इसके प्रमुख संस्करण में अपग्रेड करने के लिए पहले लागू किया जाना है। एप्लिकेशन और डेटाबेस से सभी प्रणालियों को एक प्रतिगमन परीक्षण या क्यूए परीक्षण की श्रृंखला को तब तक आगे बढ़ाना होगा जब तक कि सब कुछ बीत न जाए। डेटाबेस सिस्टम पर जाने वाले आपके एप्लिकेशन के परीक्षण मामले को सरल बनाना एक अच्छा विचार नहीं है और केवल इस बात से इंकार करें कि सब कुछ ठीक है जब तक डेटाबेस क्रैश नहीं होता है या यह केवल थोड़े समय के लिए सिद्ध होता है जहां परीक्षण होता है संक्षेप में, एक बहुत ही सरल परीक्षण जो आपके संपूर्ण सिस्टम के एक छोटे से प्रतिशत को ही कवर करता है। स्टेजिंग या क्यूए वातावरण पर पहले अपने अपग्रेड का परीक्षण इस तरह से प्राथमिकता दी जानी चाहिए कि इसे व्यावसायिक पक्ष को प्रभावित किए बिना आपके एप्लिकेशन का पूरी तरह से अच्छा आकार प्राप्त करना है और उन उपयोगकर्ताओं को भी जो आपके एप्लिकेशन का उपयोग करने जा रहे हैं, देर से यह महसूस करने के बजाय कि डेटाबेस अपग्रेड आपके द्वारा अभी तक खोजे नहीं गए परिवर्तनों के कारण आपका सिस्टम असामान्य रूप से व्यवहार करता है।
एक पुनर्स्थापना प्रक्रिया तैयार करें
आपके डेटाबेस के उन्नयन के दौरान सब कुछ योजनाबद्ध होना चाहिए। जब भी बैकअप उपलब्ध होता है और परीक्षण से मजबूत और आशाजनक परिणाम सामने आते हैं, तो यह हमेशा सुरक्षित और अनुमानित लगता है, जब आपके उत्पादन मारियाडीबी डेटाबेस सर्वर को अपग्रेड करते समय अप्रत्याशित चुनौतियां आती हैं। इस मामले में, हमेशा एक प्रक्रिया लिखें और तैयार करें जिससे चीजें सामान्य रूप से और निर्बाध रूप से सामान्य हो जाएं।
यदि आपकी रखरखाव विंडो बहुत लंबी नहीं है, तो Ansible, Chef, Puppet, SaltStack, या Terraform जैसे स्वचालित टूल का उपयोग करके पुनर्स्थापना प्रक्रिया तैयार करना, पुनर्स्थापना प्रक्रिया के लिए एक अच्छा विकल्प हो सकता है। यह मानवीय त्रुटियों को कम करता है और महत्वपूर्ण कार्यों को करने के लिए गति और चपलता प्रदान करता है। हालाँकि ऑटोमेशन स्क्रिप्ट के विफल होने पर एक त्रुटि का सामना करने की स्थिति में यह नुकसान हो सकता है, तो इसका मतलब यह भी है कि आप इस संभावना को अनदेखा नहीं कर सकते कि ऐसा हो सकता है। इसलिए, यह भी इंगित करता है कि पुनर्स्थापना को निर्बाध होना चाहिए और ठीक से परीक्षण किया गया है कि यह एक वैध प्रक्रिया में पुनर्स्थापित करने में सक्षम होगा।
MariaDB अपग्रेड प्रक्रिया
अपने MariaDB संस्करण 10.4 को 10.5 में अपग्रेड करना कोई झंझट नहीं है फिर भी सरल है। नवीनतम मारियाडीबी 10.5 संस्करण में अपग्रेड करने के लिए आप नीचे दिए गए चरणों का पालन कर सकते हैं।
अपना भंडार तैयार करें
यह समझ में आता है कि आपके पास मारियाडीबी 10.4 है, इसलिए यह एक धारणा है कि आपके वर्तमान मारियाडीबी सर्वर नोड्स में एक वर्तमान भंडार है। अन्यथा, आप वैसे भी एक भंडार जोड़ सकते हैं और यह बहुत आसान है।
उबंटू/डेबियन
उबंटू/डेबियन आधारित सिस्टम के लिए, मौजूदा मारियाडब रिपोजिटरी के लिए, आप रिपोजिटरी को संपादित कर सकते हैं। आप यह सत्यापित करने में सक्षम हो सकते हैं कि मौजूदा भंडार आपके मेजबान में हैं या यह पता लगा सकते हैं कि कहीं मौजूदा मारियाडीबी भंडार है या नहीं। ऐसा करने के लिए, बस,
$ grep ^[^#] /etc/apt/sources.list /etc/apt/sources.list.d/*
आमतौर पर, आपके पास एक mariadb.list रिपॉजिटरी होती है। उबंटू 18.0 (बायोनिक) में मेरे सेटअप में, यह निम्न के रूप में दिखाता है:
[email protected]:/vagrant# cat /etc/apt/sources.list.d/mariadb.list
deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.4/ubuntu bionic main
मारियाडीबी 10.5 रिपॉजिटरी जोड़ने के लिए बस निम्न कमांड लाइन चलाएँ,
. /etc/os-release
sudo echo "deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.5/${ID} ${VERSION_CODENAME} main" >> /etc/apt/sources.list.d/mariadb.list
MariaDB संकुल को संस्थापित करने से पहले, इसके लिए आवश्यक है कि संस्थापित किए जाने वाले संकुलों को GPG सार्वजनिक कुंजी के साथ आयात किया जाना चाहिए जिसका उपयोग संकुल के डिजिटल हस्ताक्षरों को उनके भंडार में सत्यापित करने के लिए किया जाता है। आप निम्न के साथ अपनी उपयुक्त कुंजियों की जांच कर सकते हैं,
$ apt-key list |grep -C2 -i 'mariadb'
अगर कुंजियां आयात नहीं की जाती हैं,
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
या नए उबंटू/डेबियन आधारित संस्करणों के लिए यानी डेबियन 9 (स्ट्रेच), और डेबियन अनस्टेबल (सिड), और उबंटू 16.04 एलटीएस (ज़ेनियल) से शुरू,
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
एक बार हो जाने के बाद, बस दौड़ें
$ sudo apt update
CentOS/RHEL
CentOS/RHEL के लिए, यदि आपके पास एक मौजूदा भंडार है, तो आप फ़ाइल को जोड़ या संपादित कर सकते हैं। अन्यथा, MariaDB 10.5 रिपॉजिटरी के लिए नीचे दी गई पंक्तियों को जोड़ने से रिपॉजिटरी की आवश्यकताएं पूरी हो जाएंगी (देखें mariadb.repo)। उदाहरण के लिए, मेरे CentOS 8.0 होस्ट में निम्न mariadb.repo है।
[[email protected] ~]# cat /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB Repository
baseurl = http://yum.mariadb.org/10.4/centos8-amd64
enabled = 1
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1
[mariadb_10.5]
name = MariaDB Repository For 10.5
baseurl = http://yum.mariadb.org/10.5/centos8-amd64
enabled = 1
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1
आप सत्यापित कर सकते हैं कि यदि MariaDB रिपॉजिटरी सक्षम है और ठीक काम करती है:
[[email protected] ~]# dnf --disablerepo=* --enablerepo=mariadb_10.5 repolist
repo id repo name status
mariadb_10.5 MariaDB Repository For 10.5 83
अपना मारियाडीबी पैकेज अपग्रेड करें
MariaDB के साथ अपग्रेड करना बहुत आसान है। सुनिश्चित करें कि आपने पहले MariaDB सर्वर को ठीक से बंद कर दिया है।
एक व्यस्त और लाइव प्रोडक्शन सर्वर के लिए, सुनिश्चित करें कि आपके पास कोई इनकमिंग कनेक्शन नहीं है और गंदे पेज डिस्क पर ठीक से फ्लश हो गए हैं। सर्वर को बंद करने से पहले, आप अपने इनोडब स्टोरेज इंजन के साथ गंदे पेजों की फ्लशिंग को आक्रामक तरीके से सेट कर सकते हैं ताकि सभी गंदे पेज फ्लश हो जाएं और शटडाउन प्रक्रिया तेज हो जाए,
set global innodb_max_dirty_pages_pct = 0;
फिर निम्न के साथ गंदे पृष्ठों की निगरानी करें,
$ mysqladmin ext -i10 | grep dirty
| Innodb_buffer_pool_pages_dirty | 0 |
| Innodb_buffer_pool_bytes_dirty | 0 |
एक बार अच्छा होने पर, मारियाडीबी इंस्टेंस को बंद कर दें,
systemctl stop mariadb
मास्टर/रेप्लिका डेटाबेस क्लस्टर के लिए, हमेशा रेप्लिका पर अपना अपग्रेड शुरू करना एक अच्छा अभ्यास है। इसलिए अपग्रेड से पहले और शटडाउन के बाद, सुनिश्चित करें कि आपने अपनी my.cnf कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित को जोड़ा है,
[mysqld]
….
skip-slave-start
यह आपको MariaDB सर्वर के प्रारंभ होने पर प्रतिकृति थ्रेड्स को स्वचालित रूप से प्रारंभ करने से बचने की अनुमति देता है। यह आपको अधिक सुरक्षा देता है और प्रतिकृति में आगे की गलतियों से बचा जाता है। निम्नलिखित कथन के साथ तैयार होने पर केवल प्रतिकृति थ्रेड को मैन्युअल रूप से प्रारंभ करें,
START SLAVE;
उबंटू/डेबियन
उबंटू/डेबियन आधारित सिस्टम के साथ अपग्रेड करना बहुत आसान है,
sudo apt install --only-upgrade mariadb-server mariadb-client mariadb-backup mariadb-common
बेशक, -y विकल्प की आपूर्ति न करें ताकि आप अद्यतन किए जाने वाले निम्नलिखित पैकेजों की समीक्षा कर सकें।
सेंटोस/आरएचईएल
उबंटू/डेबियन आधारित सिस्टम की तरह ही, CentOS/RHEL भी आपके वर्तमान MariaDB 10.4 संस्करण को अपग्रेड करने में कोई परेशानी नहीं दिखाता है। प्रक्रिया को पूरा करने के लिए आप निम्न कमांड चला सकते हैं,
$ dnf --disablerepo=* --enablerepo=mariadb_10.5 upgrade Mariadb-server MariaDB-client MariaDB-backup MariaDB-common Mariadb-shared
इंस्टॉलेशन/पैकेज अपग्रेड के बाद
एक बार पैकेज अपग्रेड हो जाने के बाद। चूंकि यह एक प्रमुख उन्नयन है, सिस्टमड के लिए डेमॉन को पुनः लोड करना न भूलें। बस दौड़ो,
$ systemctl daemon-reload
अब जब आप सेट हो गए हैं, तो mariadb सेवा प्रारंभ करें
$ systemctl start mariadb
और mysqld_upgrad चलाएं,
$ mysql_upgrade
mysql_upgrad चलाते समय, हमेशा त्रुटि लॉग की निगरानी करें ताकि आप अपने सामान्य संचालन के लिए सब कुछ चलाने और शुरू करने से पहले किसी भी त्रुटि को पकड़ सकें:
tail -5f /var/log/mariadb/mariadb.log
ClusterControl उपयोगकर्ताओं के लिए अपग्रेड टिप्स
चूंकि क्लस्टरकंट्रोल प्रमुख संस्करण अपग्रेड प्रदान नहीं करता है, पैकेज अपग्रेड करते समय, अपने मारियाडीबी क्लस्टर के लिए ऑटो रिकवरी मोड को हमेशा बंद करना न भूलें। नोड्स को रखरखाव मोड पर सेट करें ताकि अलर्ट चुप रहें और कोई गलत अलर्ट अधिसूचित न किया जाए।