MongoDB के लिए Percona सर्वर Percona द्वारा संचालित एक MongoDB ओपन सोर्स वितरण है। यह MongoDB कम्युनिटी संस्करण के लिए एक मुफ़्त, पूरी तरह से संगत और ड्रॉप-इन रिप्लेसमेंट है। यह "एंटरप्राइज़ ग्रेड" सुविधाएँ भी प्रदान करता है जो अन्यथा केवल MongoDB के एंटरप्राइज़ संस्करण में उपलब्ध होंगी, उदाहरण के लिए:LDAP प्रमाणीकरण और प्राधिकरण, ऑडिट लॉगिंग, Kerberos प्रमाणीकरण।
मोंगोडीबी के लिए पेरकोना सर्वर को अपग्रेड करना वास्तव में सीधा है। इस ब्लॉग में, हम कुछ अपग्रेड युक्तियों पर चर्चा करेंगे और एक उदाहरण दिखाएंगे कि संस्करण 3.6 से संस्करण 4.0 में कैसे अपग्रेड किया जाए।
तैयारी को अपग्रेड करें
अपग्रेड चलाने से पहले, आप शायद कुछ तैयारी करना चाहें। हमेशा दस्तावेज़ीकरण और अपने आवेदन पक्ष में संगतता परिवर्तनों की जाँच करें; परिवर्तनों और सुधार सुविधाओं, अप्रचलित कार्यक्षमता (यदि कोई हो) से संबंधित दस्तावेज़ीकरण की जाँच करें।
यह समझने के लिए कि क्या आपको ड्राइवर को भी अपग्रेड करने की आवश्यकता है, MongoDB के लिए ड्राइवर संगतता मैट्रिक्स की जाँच करें।
अपग्रेड कैसे निष्पादित किया जाएगा, इस पर चरण दर चरण चेकलिस्ट तैयार करें। कार्य योजना लिखें, पार्टियों को दस्तावेज़ीकरण में शामिल होने की आवश्यकता है, सबसे खराब स्थिति के लिए रोलबैक योजना।
MongoDB के लिए Percona सर्वर को अपग्रेड करना
उत्पादन परिवेश में जाने से पहले विकास या स्टेजिंग परिवेश में अपने अपग्रेड का परीक्षण करना हमेशा अच्छा होता है। आप पिछले बैकअप से डेटा को उत्पादन, परीक्षण और पुनर्स्थापित करने के समान ही MongoDB आर्किटेक्चर का निर्माण कर सकते हैं। उसके बाद, आप अपग्रेड का परीक्षण कर सकते हैं और अपनी अपग्रेड योजना को मान्य कर सकते हैं, इतना ही नहीं आप इस बात का अनुमान लगा सकते हैं कि अपग्रेड में कितना समय लगेगा और यह भी सत्यापित कर सकते हैं कि एप्लिकेशन डेटाबेस के नए संस्करण के साथ संगत है या नहीं।
अपग्रेड प्रक्रिया बस परकोना रिपॉजिटरी से नया पैकेज स्थापित करती है, इस तरह से संस्करण 3.6 से संस्करण 4.0 पर आधारित CentOS पर अपग्रेड किया जाता है।
एक कदम
यदि आपने Percona रिपॉजिटरी स्थापित नहीं की है, तो आप percona-release-latest स्थापित कर सकते हैं।
[[email protected] ~]# yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
Loaded plugins: fastestmirror
percona-release-latest.noarch.rpm | 19 kB 00:00:00
Examining /var/tmp/yum-root-evWD4w/percona-release-latest.noarch.rpm: percona-release-1.0-25.noarch
Marking /var/tmp/yum-root-evWD4w/percona-release-latest.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package percona-release.noarch 0:1.0-25 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================
Installing:
percona-release noarch 1.0-25 /percona-release-latest.noarch 31 k
Transaction Summary
===========================================================================================================================================
Install 1 Package
Total size: 31 k
Installed size: 31 k
Is this ok [y/d/N]: y
दूसरा चरण
Percona रिपॉजिटरी स्थापित करने के बाद, MongoDB 4.0 के लिए Percona सर्वर को सक्षम करें
[[email protected] ~]# percona-release enable psmdb-40
* Enabling the Percona Server for MongoDB 4.0 repository
<*> All done!
तीसरा चरण
नया पैकेज percona-server-mongodb इंस्टॉल करें, यह स्वचालित रूप से पुराने पैकेज को हटा देगा और नया पैकेज इंस्टॉल करेगा:
[[email protected] ~]# yum install percona-server-mongodb
Loaded plugins: fastestmirror
Repository percona-release-noarch is listed more than once in the configuration
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
percona-release | 2.9 kB 00:00:00
percona-release-noarch | 2.9 kB 00:00:00
percona-release-x86_64 | 2.9 kB 00:00:00
prel-release-noarch | 2.9 kB 00:00:00
psmdb-40-release-x86_64 | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/3): prel-release-noarch/7/primary_db | 2.5 kB 00:00:00
(2/3): psmdb-40-release-x86_64/7/primary_db | 47 kB 00:00:01
(3/3): percona-release-x86_64/7/primary_db | 1.1 MB 00:00:03
Loading mirror speeds from cached hostfile
* base: mirror.buana.web.id
* extras: mirror.buana.web.id
* updates: mirror.buana.web.id
Resolving Dependencies
--> Running transaction check
---> Package Percona-Server-MongoDB-36.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package percona-server-mongodb.x86_64 0:4.0.20-14.el7 will be obsoleting
--> Processing Dependency: percona-server-mongodb-tools = 4.0.20-14.el7 for package: percona-server-mongodb-4.0.20-14.el7.x86_64
--> Processing Dependency: percona-server-mongodb-mongos = 4.0.20-14.el7 for package: percona-server-mongodb-4.0.20-14.el7.x86_64
--> Processing Dependency: percona-server-mongodb-shell = 4.0.20-14.el7 for package: percona-server-mongodb-4.0.20-14.el7.x86_64
--> Processing Dependency: percona-server-mongodb-server = 4.0.20-14.el7 for package: percona-server-mongodb-4.0.20-14.el7.x86_64
--> Running transaction check
---> Package Percona-Server-MongoDB-36-mongos.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package Percona-Server-MongoDB-36-server.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package Percona-Server-MongoDB-36-shell.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package Percona-Server-MongoDB-36-tools.x86_64 0:3.6.19-8.0.el7 will be obsoleted
---> Package percona-server-mongodb-mongos.x86_64 0:4.0.20-14.el7 will be obsoleting
---> Package percona-server-mongodb-server.x86_64 0:4.0.20-14.el7 will be obsoleting
---> Package percona-server-mongodb-shell.x86_64 0:4.0.20-14.el7 will be obsoleting
---> Package percona-server-mongodb-tools.x86_64 0:4.0.20-14.el7 will be obsoleting
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================
Installing:
percona-server-mongodb x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 4.9 k
replacing Percona-Server-MongoDB-36.x86_64 3.6.19-8.0.el7
percona-server-mongodb-mongos x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 8.9 M
replacing Percona-Server-MongoDB-36-mongos.x86_64 3.6.19-8.0.el7
percona-server-mongodb-server x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 19 M
replacing Percona-Server-MongoDB-36-server.x86_64 3.6.19-8.0.el7
percona-server-mongodb-shell x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 9.8 M
replacing Percona-Server-MongoDB-36-shell.x86_64 3.6.19-8.0.el7
percona-server-mongodb-tools x86_64 4.0.20-14.el7 psmdb-40-release-x86_64 28 M
replacing Percona-Server-MongoDB-36-tools.x86_64 3.6.19-8.0.el7
Transaction Summary
===========================================================================================================================================
Install 5 Packages
Total download size: 66 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): percona-server-mongodb-4.0.20-14.el7.x86_64.rpm | 4.9 kB 00:00:05
(2/5): percona-server-mongodb-mongos-4.0.20-14.el7.x86_64.rpm | 8.9 MB 00:00:39
(3/5): percona-server-mongodb-shell-4.0.20-14.el7.x86_64.rpm | 9.8 MB 00:00:42
(4/5): percona-server-mongodb-server-4.0.20-14.el7.x86_64.rpm | 19 MB 00:01:23
(5/5): percona-server-mongodb-tools-4.0.20-14.el7.x86_64.rpm | 28 MB 00:02:00
-------------------------------------------------------------------------------------------------------------------------------------------
Total 332 kB/s | 66 MB 00:03:22
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : percona-server-mongodb-shell-4.0.20-14.el7.x86_64 1/10
Installing : percona-server-mongodb-server-4.0.20-14.el7.x86_64 2/10
warning: /etc/mongod.conf created as /etc/mongod.conf.rpmnew
* To start the service, configure your engine and start mongod
** WARNING: Access control is not enabled for the database.
** Read and write access to data and configuration is unrestricted.
** To fix this please use /usr/bin/percona-server-mongodb-enable-auth.sh
Installing : percona-server-mongodb-mongos-4.0.20-14.el7.x86_64 3/10
Installing : percona-server-mongodb-tools-4.0.20-14.el7.x86_64 4/10
Installing : percona-server-mongodb-4.0.20-14.el7.x86_64 5/10
Erasing : Percona-Server-MongoDB-36-3.6.19-8.0.el7.x86_64 6/10
Erasing : Percona-Server-MongoDB-36-server-3.6.19-8.0.el7.x86_64 7/10
Erasing : Percona-Server-MongoDB-36-shell-3.6.19-8.0.el7.x86_64 8/10
Erasing : Percona-Server-MongoDB-36-mongos-3.6.19-8.0.el7.x86_64 9/10
Erasing : Percona-Server-MongoDB-36-tools-3.6.19-8.0.el7.x86_64 10/10
Verifying : percona-server-mongodb-server-4.0.20-14.el7.x86_64 1/10
Verifying : percona-server-mongodb-tools-4.0.20-14.el7.x86_64 2/10
Verifying : percona-server-mongodb-mongos-4.0.20-14.el7.x86_64 3/10
Verifying : percona-server-mongodb-shell-4.0.20-14.el7.x86_64 4/10
Verifying : percona-server-mongodb-4.0.20-14.el7.x86_64 5/10
Verifying : Percona-Server-MongoDB-36-server-3.6.19-8.0.el7.x86_64 6/10
Verifying : Percona-Server-MongoDB-36-tools-3.6.19-8.0.el7.x86_64 7/10
Verifying : Percona-Server-MongoDB-36-mongos-3.6.19-8.0.el7.x86_64 8/10
Verifying : Percona-Server-MongoDB-36-shell-3.6.19-8.0.el7.x86_64 9/10
Verifying : Percona-Server-MongoDB-36-3.6.19-8.0.el7.x86_64 10/10
Installed:
percona-server-mongodb.x86_64 0:4.0.20-14.el7 percona-server-mongodb-mongos.x86_64 0:4.0.20-14.el7
percona-server-mongodb-server.x86_64 0:4.0.20-14.el7 percona-server-mongodb-shell.x86_64 0:4.0.20-14.el7
percona-server-mongodb-tools.x86_64 0:4.0.20-14.el7
Replaced:
Percona-Server-MongoDB-36.x86_64 0:3.6.19-8.0.el7 Percona-Server-MongoDB-36-mongos.x86_64 0:3.6.19-8.0.el7
Percona-Server-MongoDB-36-server.x86_64 0:3.6.19-8.0.el7 Percona-Server-MongoDB-36-shell.x86_64 0:3.6.19-8.0.el7
Percona-Server-MongoDB-36-tools.x86_64 0:3.6.19-8.0.el7
Complete!
चरण चार
आखिरकार, मोंगोड सेवाएं शुरू करें।
$ systemctl start mongod.service
उबंटू/डेबियन आधारित इंस्टॉलेशन प्रक्रिया समान है, आपको बस एपीटी पैकेज मैनेजर से कमांड चाहिए।
एक अत्यधिक उपलब्ध MongoDB आर्किटेक्चर में, आप डाउनटाइम को कम करने के लिए रोलिंग अपग्रेड कर सकते हैं।
यदि आपका एप्लिकेशन पहले से नवीनतम MongoDB संस्करण का समर्थन करता है, तो आप पैरामीटर सेट कर सकते हैं
अपग्रेड पूरा होने के बादsetFeatureCompatibilityVersion after the upgrade was completed.
> db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )
सत्यापन अपग्रेड करें
आप सीधे MongoDB इंस्टेंस से कनेक्ट करके सत्यापित कर सकते हैं कि अपग्रेड सफल रहा या नहीं। जांचें कि क्या डेटाबेस सही संस्करण के साथ चल रहा है:
> db.version()
या आप कमांड लाइन से जांच सकते हैं:
[[email protected] lib]# mongod --version
db version v4.0.20-14
git version: b96ae5b9e6c70670b6880d4c5412167a7017713a
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
allocator: tcmalloc
modules: none
build environment:
distarch: x86_64
target_arch: x86_64