Updating MongoDB¶
Updating MongoDB 3.6 to 4.4¶
The following instructions include the update of both, single system and cluster.
Caution - incompatibility
Due to incompatibility of the MongoDB service
versions 3.6 and 4.4 you must export the stored data before updating and reimport them afterwards.
The standard procedure is as follows:
Saving the Database Content¶
-
Open a shell.
-
Start MongoDB, if necessary.
sudo systemctl start mongod
Hint - cluster
In a cluster, make sure that all members of the replica set are running.
-
Save the stored data:
-
Single server:
mongodump --ssl --sslAllowInvalidCertificates --oplog --gzip --out /tmp/mongodump
-
Cluster:
mongodump --uri="mongodb://<server1>:27017,<server2>:27017,<server3>:27017/?replicaSet=p5&readPreference=secondary" --ssl --sslAllowInvalidCertificates --oplog --gzip --out /tmp/mongodump
Hint - cluster
In a cluster, you need to perform the following instructions on one server only. The data will be read from one of the secondary cluster members. This will not affect the operation of the replica set primary.
-
Updating the Database¶
-
Stop all dependent services.
Hint - services with database access
Services that access the database will restart continuously while you are updating the database. To prevent this unnecessary server load, you need to stop all services.
Literature - further information
Please refer to the documentations of the installed products for further information about stopping the corresponding services.
-
Stop MongoDB
sudo systemctl stop mongod
-
Remove all subdirectories and files in the
/opt/seal/data/seal-mongodb
directory, except of the base directory itself.sudo rm -rf /opt/seal/data/seal-mongodb/*
-
On single systems or the replica set primary, reinitialize the database.
Caution - update member of the replica set
Make sure that all cluster members are upgraded and reconfigured before you restore the database.
Restoring the Database Content¶
-
Remove the directory of the
admin
database dump:sudo rm -rf /tmp/mongodump/admin
Caution - admin database
The
admin
database is used by MongoDB for storing internal configuration and runtime information. After the update, this information will no longer match the new configuration. Therefore, you must remove this directory before you restore the data. -
Restore the data:
Single server:
mongodump --tls --tlsAllowInvalidCertificates --drop --oplogReplay --gzip /tmp/mongodump
Cluster:
mongorestore --uri="mongodb://<server1>:27017,<server2>:27017,<server3>:27017/?replicaSet=p5" --tls --tlsInsecure --drop --oplogReplay --gzip /tmp/mongodump
Hint - cluster
In a cluster, you have to perform the following instructions on one server only.
-
Restart all dependent services.
Literature - further information
Please refer to the documentations of the installed products for further information about stopping the corresponding services.