यह आलेख मूल MySQL®️ या MariaDB®️ सेवा को बदलने की प्रक्रिया को रेखांकित करता है जो किसी भी विशिष्ट Plesk Onyx 11 CentOS 7 सर्वर पर पूर्वस्थापित है। प्रक्रिया मौजूदा MySQL संबंधित बायनेरिज़ को हटाने की रूपरेखा तैयार करती है और उन्हें Percona बायनेरिज़ के पर्याप्त संस्करण के साथ बदल देती है। एक बार जब ये पेरकोना बायनेरिज़ स्थापित हो जाते हैं, तो मौजूदा डेटाबेस और पेरकोना बायनेरिज़ को वांछित पेरकोना 5.7 संस्करण में लाने के लिए एक विशिष्ट मल्टीस्टेज MySQL इंक्रीमेंटल संस्करण अपग्रेड को संसाधित किया जाता है।
रखरखाव अपेक्षाएं:लंबाई और डाउनटाइम
सुझाई गई रखरखाव अवधि: 90 मिनट
न्यूनतम अपेक्षित डाउनटाइम: ~30 मिनट की सर्विस फ़्लैपिंग
इस प्रक्रिया के लिए अपेक्षित MySQL सेवा डाउनटाइम, MySQL सेवा की उपलब्धता के 30 मिनट से कम है जो बार-बार ऊपर और नीचे जा रहा है (फ्लैपिंग)। यह आंकड़ा मानता है कि सब कुछ सुचारू रूप से चलता है और कोई अप्रत्याशित त्रुटि सामने नहीं आती है। सुझाई गई रखरखाव लंबाई त्रुटि उत्पन्न होने पर समस्या निवारण के लिए समय देती है और साथ ही संभावित स्थिति में अतिरिक्त 30 मिनट की अनुमति देती है कि सभी परिवर्तनों को वापस करने की आवश्यकता होती है और रखरखाव योजना निरस्त हो जाती है।
रखरखाव चरणों का अवलोकन
योजना को तैयारी कार्यों और चरणों में विभाजित किया गया है। आपकी रखरखाव विंडो के प्रारंभ समय से पहले तैयारी कार्य पूरा किया जाना चाहिए। रखरखाव इवेंट विंडो में चरणों का आयोजन किया जाता है और रूपरेखा के प्रत्येक महत्वपूर्ण चरण को पूरा करने के लिए पूरी प्रक्रिया के माध्यम से चलते हैं।
तैयारी - पूर्व रखरखाव कार्य
इन दो महत्वपूर्ण कार्यों को आपकी रखरखाव विंडो के निर्धारित प्रारंभ समय से पहले पूरा किया जाना चाहिए:
- मौजूदा MySQL कॉन्फ़िग फ़ाइल कॉपी करें
- MySQL डेटाबेस डेटा का चरण बैकअप
हम इस योजना में चरण शून्य का उपयोग MySQL डेटा की बैकअप प्रक्रिया में तेजी लाने में मदद करने के लिए करते हैं। चूंकि MySQL के पास डेटा की मात्रा प्रति सर्वर बेतहाशा भिन्न होती है, इसलिए वृद्धिशील बैकअप समाधान चलाना एक अच्छा अभ्यास है, जैसे rsync, पूर्व रखरखाव घटना खिड़की के लिए। जब MySQL अभी भी चल रहा है, तब Rsync अधिकांश स्थिर डेटा का बैकअप लेगा और रखरखाव के लिए MySQL के बंद होने के बाद वृद्धिशील अंतर का बैकअप लेगा।
मौजूदा MySQL कॉन्फ़िग फ़ाइल कॉपी करें:
1) मौजूदा स्वयं कॉन्फ़िग फ़ाइल की बैकअप प्रतिलिपि बनाएँ।
cp -pv /etc/my.cnf{,.pre-percona.bak}
MySQL डेटाबेस डेटा का चरण बैकअप:
2) MySQL डेटा को क्लोन करने के लिए निम्नलिखित rsync चलाएँ। [महत्वपूर्ण:अनुगामी स्लैश आवश्यक]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) चरण 1 शुरू करने से पहले चरण 1 के पूरा होने की प्रतीक्षा करें।
चरण 1 - MySQL को शट डाउन करें और Rsync फ़ाइनल सिंक को फिर से चलाएँ
चरण एक का उद्देश्य यह सुनिश्चित करना है कि आगे बढ़ने से पहले MySQL डेटा का एक प्राचीन बैकअप हो। इसे पूरा करने के लिए, MySQL सेवाओं को पूरी तरह से बंद करना आवश्यक है ताकि सभी बफ़र्स लिखे जा सकें और डेटाबेस में कोई अतिरिक्त परिवर्तन नहीं लिखा जा सके। एक बार रुकने के बाद, rsync को फिर से निष्पादित किया जाता है ताकि अब रुके हुए पुराने डेटा और लक्ष्य बैकअप डेटा के बीच के अंतर को कॉपी किया जा सके।
1) MySQL/MariaDB सेवा को बंद करें
systemctl stop mysql
2) क्लोन किए गए डेटा को अंतिम रूप देने के लिए निम्नलिखित rsync को फिर से चलाएँ। [महत्वपूर्ण:अनुगामी स्लैश आवश्यक]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) चरण 3 पर जाने से पहले rsync के पूर्ण होने की प्रतीक्षा करें।
चरण 2 - MariaDB 5.5 बायनेरिज़ को Percona 5.5 से बदलें
नोट:मारियाडीबी 5.5 गोमेद 11 सेंटोस 7 के साथ स्थापित संस्करण है, इसलिए यह शुरुआती बिंदु है।मौजूदा बायनेरिज़ को बदलने में यम के बजाय RPM कमांड लाइन टूल का उपयोग करके सिस्टम से आवश्यक बाइनरी पैकेज को हटाना शामिल है। यह संकुल को अन्य सिस्टम संकुल से जोड़ने वाली किसी भी निर्भरता को छुए बिना हटाने की अनुमति देता है। चूंकि पेरकोना, मारियाडीबी की तरह, MySQL के लिए एक ड्रॉप-इन प्रतिस्थापन है, एक बार नई बायनेरिज़ के स्थान पर होने के बाद लिंक की गई निर्भरताएं अंतर को नहीं जानती हैं और सामान्य रूप से कार्य करेंगी।
1) निर्भरता के बिना मारियाडीबी पैकेज निकालें:
rpm -e --nodeps mariadb mariadb-libs mariadb-server
2) mariadb-devel पैकेज को हटा दें (इसे ऊपर से एक अलग कमांड के रूप में करें ताकि रिमूवल फेल्योर से बचने के लिए डू टू मिसिंग पैकेज)
rpm -e --nodeps mariadb-devel
3) Percona रिपॉजिटरी स्थापित करें:
yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
4) Percona DB सर्वर स्थापित करें:
yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55
5) निम्न आदेश निष्पादित करें (InnoDB प्लगइन को सही ढंग से लोड करने की अनुमति देता है)
mv /var/lib/mysql/ibdata1 /var/lib/mysql/ibdata1.bak
cp -a /var/lib/mysql/ibdata1.bak /var/lib/mysql/ibdata1
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
cp -a /var/lib/mysql/ib_logfile0.bak /var/lib/mysql/ib_logfile0
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
cp -a /var/lib/mysql/ib_logfile1.bak /var/lib/mysql/ib_logfile1
6) सुनिश्चित करें कि पोर्ट 3306 पर कोई प्रक्रिया नहीं सुन रही है और यदि कोई हो तो प्रक्रिया को मार दें।
netstat -tulpn | grep 3306
7) MySQL प्रारंभ करें (अब Percona 5.5)
service mysql start
8) mysql_upgrad स्क्रिप्ट चलाएँ
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
9) [वैकल्पिक] Percona टूलकिट से Percona XtraDB क्लस्टर UDF सक्षम करें:
plesk db -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
plesk db -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
plesk db -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
10) अपग्रेड प्रक्रिया को पूरा करने के लिए MySQL को पुनरारंभ करें
systemctl start mysql
चरण 3 - Plesk MySQL पैकेज को Plesk MySQL समुदाय पैकेज पर स्विच करें
Plesk पर Percona चलाना एक असमर्थित कॉन्फ़िगरेशन है। इस कारण से, Plesk MySQL पैकेज और नए Percona बायनेरिज़ के बीच निर्भरता कनेक्शन को संतुष्ट करने के लिए, Plesk MySQL रिलीज़ को इसके बजाय Plesk MySQL कम्युनिटी रिलीज़ का उपयोग करने के लिए स्विच करना आवश्यक है। Percona संस्करणों को अपग्रेड और डाउनग्रेड करने की सुविधा के लिए परिवर्तन आवश्यक है।
1) आवश्यक रेपो कॉन्फ़िग फ़ाइल बनाएँ:
printf '[PLESK_17_8_11-dist] %s\nname=PLESK_17_5_3 dist %s\nbaseurl=http://autoinstall.plesk.com/PSA_17.8.11/dist-rpm-CentOS-7-x86_64/ %s\nenabled=1 %s\ngpgcheck=1 %s\n' > /etc/yum.repos.d/plesk178.repo
2) नए भंडार से "plesk-mysql-server-community" पैकेज स्थापित करें:
yum install plesk-mysql-server-community
3) /etc/yum.repos.d/plesk178.repo फ़ाइल को अक्षम करें क्योंकि अब इसकी आवश्यकता नहीं है:
mv /etc/yum.repos.d/plesk178.repo{,.disabled}
4) निर्भरता को छुए बिना "plesk-mysql-server" पैकेज निकालें।
rpm -e --nodeps plesk-mysql-server
Percona को अब स्थापित किया जाना चाहिए और आधार 5.5 संस्करण पर काम करना चाहिए। अगले चरण सामान्य MySQL अपग्रेड प्रक्रिया के समान हैं जहां बायनेरिज़ अपग्रेड किए जाते हैं, और फिर स्कीमा अपडेट mysql_upgrad टूल का उपयोग करके मैन्युअल रूप से किए जाते हैं।
पेरकोना 5.5 को 5.6 में अपग्रेड करें
1) MySQL सेवा बंद करें:
service mysql stop
2) निर्भरता के बिना Percona 55 पैकेज निकालें:
rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55
3) Percona 56 पैकेज स्थापित करें
yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
4) सुनिश्चित करें कि पोर्ट 3306 पर कोई प्रक्रिया नहीं सुन रही है और यदि कोई हो तो प्रक्रिया को मार दें।
netstat -tulpn | grep 3306
5) MySQL सेवा प्रारंभ करें:
service mysql start
6) MySQL तालिकाओं को अपग्रेड करें:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
चरण 4 - Percona 5.6 से 5.7 में अपग्रेड करें
1) MySQL सेवा बंद करें:
service mysql stop
2) निर्भरता के बिना Percona 56 पैकेज निकालें:
rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
3) Percona 57 पैकेज स्थापित करें
yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57
4) सुनिश्चित करें कि पोर्ट 3306 पर कोई प्रक्रिया नहीं सुन रही है और यदि कोई हो तो प्रक्रिया को मार दें।
netstat -tulpn | grep 3306
5) MySQL सेवा प्रारंभ करें:
service mysql start
6) MySQL तालिकाओं को अपग्रेड करें:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
चरण 5 - अपग्रेड को अंतिम रूप देना
सिस्टम को अब Percona 5.7 चलाना चाहिए और अनुप्रयोगों द्वारा पूरी तरह से सुलभ होना चाहिए। इस स्तर पर, डेटाबेस का उपयोग करने वाली किसी भी साइट या एप्लिकेशन का परीक्षण किया जाना चाहिए और किसी भी त्रुटि की जांच की जानी चाहिए।