मेरे पिछले ब्लॉग पोस्ट में जो मारियाडीबी के नवीनतम संस्करण के साथ जीरा के नवीनतम संस्करण में अपग्रेड करने के बारे में था, मैं संक्षेप में उल्लेख करता हूं कि मारियाडीबी सर्वर 10.3 में अपग्रेड करते समय किसी को यह देखना चाहिए कि बैकअप कैसे किया जाता है। मारियाडीबी सर्वर 10.3 के साथ मारियाडीबी बैकअप आता है, जो मारियाडीबी सर्वर की नवीनतम सुविधाओं का समर्थन करता है। यह मारियाडीबी सर्वर के समान सभी प्लेटफॉर्म पर भी उपलब्ध है और इसे सर्वर के साथ वितरित किया जाता है।
यदि आप XtraBackup के साथ बैकअप ले रहे हैं और मारियाडीबी सर्वर 10.3 के खिलाफ उन्हीं कमांड को चलाने का प्रयास करते हैं, तो आपको एक त्रुटि संदेश मिलेगा:
$ innobackupex ~/backup_to_dir --user=username --password=password
...
InnoDB: Unsupported redo log format. The redo log was created with MariaDB 10.3.9.
अंतिम संदेश में पहला वाक्य इसके बारे में है। XtraBackup 10.3 के रीडो लॉग में फाइल (फाइलों) को नहीं समझता है। ध्यान दें कि हमने XtraBackup के पुराने संस्करण का उपयोग किया है और इसीलिए कमांड अभी भी innobackupex है ।
इसके कारण और नीचे उल्लिखित कुछ अन्य कारणों से, मारियाडीबी सर्वर, अब मारियाडीबी बैकअप के साथ आता है जो नए रीडो लॉग प्रारूप का समर्थन करता है। मारियाडीबी बैकअप के साथ आपके पास वही कार्यक्षमता है जिसका उपयोग आप एक्स्ट्राबैकअप के साथ करते थे, लेकिन मारियाडीबी के डेटा-एट-रेस्ट एन्क्रिप्शन के लिए बेहतर रीडो लॉग प्रारूप और समर्थन के समर्थन के साथ। एक और बहुत ही अनुरोधित पहलू यह है कि मारियाडीबी बैकअप विंडोज के लिए भी उपलब्ध है, जो कि एक्स्ट्राबैकअप नहीं है। यदि आप फिर से लॉग परिवर्तन के बारे में अधिक जानना चाहते हैं, तो इसे पढ़ें।
इस पोस्ट की शुरुआत में मैंने उल्लेख किया है कि हमने हाल ही में जीरा को नवीनतम संस्करण में और मारियाडीबी सर्वर को 10.3.1 में अपग्रेड किया है। उस पुराने परिवेश में हमने XtraBackup का उपयोग किया था। मारियाडीबी सर्वर 10.3 के लिए बैकअप प्राप्त करने के लिए हमें मारियाडीबी बैकअप का उपयोग करने के लिए अपनी बैकअप स्क्रिप्ट को अपडेट करना पड़ा।
मारियाडीबी बैकअप पर स्विच करने के बाद बैकअप कमांड इस तरह दिखता है:
$ mariabackup --backup --target-dir /backup/to/dir --user=username --password=password --parallel=4
हमें कमांड को innobackupex . होने से बदलना पड़ा करने के लिए मारियाबैकअप और हमने दो विकल्प जोड़े; -बैकअप मारियाबैकअप . बताने के लिए कि हम चाहते हैं कि यह एक बैकअप बनाए और -target-dir यह निर्दिष्ट करने के लिए कि दी गई निर्देशिका वह जगह है जहाँ बैकअप फ़ाइलों को जाना चाहिए। यह ध्यान दिया जाना चाहिए कि यदि हम XtraBackup के अधिक हाल के संस्करण का उपयोग कर रहे होते तो कमांड लाइन विकल्प XtraBackup के साथ पूरी तरह से संगत होते, इसलिए बदलने के लिए केवल एक चीज xtrabackup से ही कमांड होती। मैं> करने के लिए मारियाबैकअप ।
यह सुनिश्चित करने के लिए कि बैकअप काम करता है, हम इसे दूसरे सर्वर पर कॉपी करेंगे और इसे वहां पुनर्स्थापित करने का प्रयास करेंगे। बैकअप को पुनर्स्थापित करने के लिए हमें पहले इसे तैयार करना होगा:
$ mariabackup --prepare --target-dir full-2018-09-11_09-38-32
ध्यान दें कि मेरे पास एक मारियाडीबी सर्वर इंस्टेंस का पूर्ण बैकअप है जो उस उदाहरण में मौजूद किसी भी चीज़ को प्रतिस्थापित करेगा जहां मैं पुनर्स्थापित कर रहा हूं। इसलिए मैं सर्वर को बंद कर दूंगा और उसके पास मौजूद सभी डेटा फ़ाइलों को हटा दूंगा।
$ sudo service mariadb stop
$ sudo rm -rf /var/lib/mysql/*
अब बैकअप फ़ाइलों को इस सर्वर इंस्टेंस की डेटा निर्देशिका में रखा जा सकता है। इसे सही करने के लिए मारियाबैकअप के साथ किया जाना चाहिए। यह ऊपर बताए गए रीडो लॉग फॉर्मेट से संबंधित कुछ चीजें करता है।
$ sudo mariabackup --copy-back --target-dir full-2018-09-11_09-38-32
सुनिश्चित करें कि अनुमतियाँ सही हैं। मेरे मामले में सामान्य उपयोगकर्ता और समूह उपयोग में हैं। फिर सर्वर शुरू करें।
$ sudo chown mysql:mysql /var/lib/mysql -R
$ sudo service mariadb start
आइए फिर सर्वर से कनेक्ट करें और सत्यापित करें कि उसके पास वह डेटा है जो उसके पास होना चाहिए। मैंने जीरा में अधिकतम अंक संख्या के लिए पूछताछ करने का निर्णय लिया।
# connect to mariadb
$ mysql -uusername -ppassword
# query the database
MariaDB [(none)]> USE jiradb
MariaDB [jiradb]> SELECT MAX(issuenum) FROM jiraissue;
वोइला! अब हमारे पास मारियाडीबी सर्वर 10.3 पर काम कर रहे बैकअप हैं।