Upgrading Percona Server for MongoDB¶
An in-place upgrade is done with existing data in the server. Generally
speaking, this is stopping the mongod
service, removing the old packages, installing the
new server and starting it with the same db data directory. An in-place upgrade
is suitable for most environments, except the ones that use ephemeral storage and/or host addresses.
This document provides upgrade instructions for the following use cases:
Upgrading from MongoDB 5.0 Community Edition¶
Note
MongoDB creates a user that belongs to two groups, which is a potential
security risk. This is fixed in Percona Server for MongoDB: the user is included only in the
mongod
group. To avoid problems with current MongoDB setups, existing
user group membership is not changed when you migrate to Percona Server for MongoDB. Instead, a
new mongod
user is created during installation, and it belongs to the
mongod
group.
This section describes an in-place upgrade of a mongod
instance. If you are using data at rest encryption, refer to the Upgrading to Percona Server for MongoDB with data at rest encryption enabled section.
Prerequisites¶
Before you start the upgrade, update the MongoDB configuration file
(/etc/mongod.conf
) to contain the following settings.
processManagement:
fork: true
pidFilePath: /var/run/mongod.pid
Troubleshooting tip: The pidFilePath
setting in mongod.conf
must match the PIDFile
option in the systemd mongod
service unit. Otherwise, the service will kill the mongod
process after a timeout.
Warning
Before starting the upgrade, we recommend to perform a full backup of your data.
Stop the
mongod
service:$ sudo systemctl stop mongod
Check for installed packages:
$ sudo dpkg -l | grep mongod
Output
ii mongodb-org 5.0.2 amd64 MongoDB open source document-oriented database system (metapackage) ii mongodb-org-database 5.0.2 amd64 MongoDB open source document-oriented database system (metapackage) ii mongodb-org-database-tools-extra 5.0.2 amd64 Extra MongoDB database tools ii mongodb-org-mongos 5.0.2 amd64 MongoDB sharded cluster query router ii mongodb-org-server 5.0.2 amd64 MongoDB database server ii mongodb-org-shell 5.0.2 amd64 MongoDB shell client ii mongodb-org-tools 5.0.2 amd64 MongoDB tools
Remove the installed packages:
$ sudo apt remove \ mongodb-org \ mongodb-org-mongos \ mongodb-org-server \ mongodb-org-shell \ mongodb-org-tools
Remove log files:
$ sudo rm -r /var/log/mongodb
Install Percona Server for MongoDB using apt.
Verify that the configuration file includes the correct options. For example, Percona Server for MongoDB stores data files in
/var/lib/mongodb
by default. If you used anotherdbPath
data directory, edit the configuration file accordinglyStart the
mongod
service:$ sudo systemctl mongod start
Stop the
mongod
service:$ sudo systemctl stop mongod
Check for installed packages:
$ sudo rpm -qa | grep mongo
Output
mongodb-org-shell-5.0.2-1.el8.x86_64 mongodb-org-database-5.0.0-1.el8.x86_64 mongodb-org-5.0.0-1.el8.x86_64 mongodb-database-tools-100.4.1-1.x86_64 mongodb-org-server-5.0.2-1.el8.x86_64 mongodb-org-mongos-5.0.2-1.el8.x86_64 mongodb-org-tools-5.0.0-1.el8.x86_64
Remove the installed packages:
$ sudo yum remove \ mongodb-org-tools-5.0.0-1.el8.x86_64 \ mongodb-org-shell-5.0.2-1.el8.x86_64 \ mongodb-org-database-5.0.0-1.el8.x86_64 \ mongodb-org-5.0.0-1.el8.x86_64 \ mongodb-database-tools-100.4.1-1.x86_64 \ mongodb-org-server-5.0.2-1.el8.x86_64 \ mongodb-org-mongos-5.0.2-1.el8.x86_64 \
Remove log files:
$ sudo rm -r /var/log/mongodb
Install Percona Server for MongoDB using yum.
Note
When you remove old packages, your existing configuration file is saved as
/etc/mongod.conf.rpmsave
. If you want to use this configuration with
the new version, replace the default /etc/mongod.conf
file. For
example, existing data may not be compatible with the default WiredTiger
storage engine.
# Start the mongod
service:
$ sudo systemctl start mongod
To upgrade a replica set or a sharded cluster, use the rolling restart method. It allows you to perform the upgrade with minimum downtime. You upgrade the nodes one by one, while the whole cluster / replica set remains operational.
See also
- MongoDB Documentation:
Minor upgrade of Percona Server for MongoDB¶
To upgrade Percona Server for MongoDB to the latest version, follow these steps:
Stop the mongod service:
$ sudo systemctl stop mongod
Install the latest version packages. Use the command relevant to your operating system.
$ sudo apt install percona-server-mongodb
$ sudo yum install percona-server-mongodb
Start the mongod service:
$ sudo systemctl start mongod
To upgrade a replica set or a sharded cluster, use the rolling restart method. It allows you to perform the upgrade with minimum downtime. You upgrade the nodes one by one, while the whole cluster / replica set remains operational.
Upgrading to Percona Server for MongoDB with data at rest encryption enabled¶
Steps to upgrade from MongoDB 5.0 Community Edition with data encryption enabled to Percona Server for MongoDB are different. mongod
requires an empty dbPath
data directory because it cannot encrypt data files in place. It must receive data from other replica set members during the initial sync. Please refer to the Switching Storage Engines for more information on migration of encrypted data. Contact us for working at the detailed migration steps, if further assistance is needed.