Upgrading a MongoDB replica set to 7.x on CentOS 8
Preparation
- Create a backup of the MongoDB databases
- Make a copy of the
/etc/mongod.confconfiguration file. - If Passwork is installed on a virtual server, we recommend taking snapshots of the operating systems before performing the upgrade.
- Make sure the server has access to the MongoDB repositories.
The example uses three servers configured for data replication:
example-mongo-01(PRIMARY)example-mongo-02(SECONDARY)example-mongo-03(SECONDARY)
Checking the current version
Check the MongoDB version in use:
- shell
mongod --version
If the MongoDB version is 4.2, you first need to upgrade to 4.4, because migration to MongoDB 5.0 is only available from version 4.4.
If the current MongoDB version is already 4.4, go straight to the Upgrading the MongoDB replica set to version 5.0.x section.
Upgrading the MongoDB replica set to version 4.4
Adding the MongoDB repository
The steps in this section must be performed on all servers of the replica set.
Create the repository file for MongoDB 4.4:
- shell
nano /etc/yum.repos.d/mongodb-4.4.repo
Insert the contents:
- shell
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
Upgrading the MongoDB nodes
The upgrade must be performed one instance at a time across the replica set.
Stop the MongoDB service:
- shell
systemctl stop mongod.service
Upgrade MongoDB to version 4.4:
- shell
dnf upgrade mongodb-org-tools mongodb-org-shell mongodb-org-server mongodb-org-database-tools-extra mongodb-org-database mongodb-org -y
Do not update the MongoDB configuration file /etc/mongod.conf — keep the current version (N when prompted to replace it).
Start the MongoDB service:
- shell
systemctl start mongod.service
Connect to the replica set and check the state of the nodes:
- shell
mongo --host rs0/example-mongo-01:27017,example-mongo-02:27017,example-mongo-03:27017
rs.status()
Changing the compatibility parameter
featureCompatibilityVersion must be changed after all MongoDB instances have been upgraded.
Connect to the MongoDB shell (replica set):
- shell
mongo --host rs0/example-mongo-01:27017,example-mongo-02:27017,example-mongo-03:27017
Update the featureCompatibilityVersion parameter:
- shell
db.adminCommand({ setFeatureCompatibilityVersion: "4.4" })
Open the Passwork web interface and make sure everything works correctly.
Upgrading the MongoDB replica set to version 5.0.x
Adding the MongoDB repository
The steps in this section must be performed on all servers of the replica set.
Create the repository file for MongoDB 5.0.x:
- shell
nano /etc/yum.repos.d/mongodb-5.0.repo
Add the contents:
- shell
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-5.0.asc
Upgrading the MongoDB nodes
The steps are performed one at a time on each node of the replica set.
Stop the MongoDB service:
- shell
systemctl stop mongod.service
Upgrade MongoDB to version 5.0.x:
- shell
dnf upgrade mongodb-org-tools mongodb-org-shell mongodb-org-server mongodb-org-database-tools-extra mongodb-org-database mongodb-org -y
Do not update the MongoDB configuration file /etc/mongod.conf — keep the current version (N when prompted to replace it).
Start the MongoDB service:
- shell
systemctl start mongod.service
Check the state of the replica set:
- shell
mongo --host rs0/example-mongo-01:27017,example-mongo-02:27017,example-mongo-03:27017
rs.status()
Changing the compatibility parameter
Perform this after all nodes have been upgraded to version 5.0.x.
Connect to the MongoDB shell:
- shell
mongo --host rs0/example-mongo-01:27017,example-mongo-02:27017,example-mongo-03:27017
Update featureCompatibilityVersion:
- shell
db.adminCommand({ setFeatureCompatibilityVersion: "5.0" })
Open the Passwork web interface and check that it works.
Upgrading the MongoDB replica set to version 6.0.x
Adding the MongoDB repository
The steps in this section are performed on all servers of the replica set.
Create the repository file for MongoDB 6.0.x:
- shell
nano /etc/yum.repos.d/mongodb-6.0.repo
Add the contents:
- shell
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-6.0.asc
Upgrading the MongoDB nodes
Perform the upgrade one node at a time across the replica set.
Stop the MongoDB service:
- shell
systemctl stop mongod.service
Upgrade MongoDB to version 6.0.x:
- shell
dnf upgrade mongodb-org-tools mongodb-org-shell mongodb-org-server mongodb-org-database-tools-extra mongodb-org-database mongodb-org -y
Do not update the MongoDB configuration file /etc/mongod.conf — keep the current version (N when prompted to replace it).
Start the MongoDB service:
- shell
systemctl start mongod.service
Check the state of the replica set:
- shell
mongosh --host rs0/example-mongo-01:27017,example-mongo-02:27017,example-mongo-03:27017
rs.status()
Changing the compatibility parameter
Perform this after all nodes have been upgraded to version 6.0.x.
Connect to the MongoDB shell:
- shell
mongosh --host rs0/example-mongo-01:27017,example-mongo-02:27017,example-mongo-03:27017
Update featureCompatibilityVersion:
- shell
db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })
Open the Passwork web interface and check that it works.