Add a member to an existing MongoDB replica set
This topic discusses the steps to add a new node to an existing MongoDB replica set.
Prerequisites:
-
An active replica set.
-
A new MongoDB system accessible by the replica set.
-
To add a new member, the MongoDB user must have
clusterAdmin
privileges.
[.parmname]``absrs01`` is the name of the replica set used in the following steps. |
Complete the following steps to add a node to an existing replica set:
-
Create the MongoDB directory structure: create mongo, data, logs, and key directory on the new MongoDB node.
# mkdir -p /opt/pingidentity/mongo/data /opt/pingidentity/mongo/logs \ /opt/pingidentity/mongo/key
-
Download MongoDB 4.2 on the node and extract to
/opt/pingidentity/mongo
.# cd /opt/pingidentity/ /opt/pingidentity# wget \ https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.0.tgz \ -O mongodb.tgz && tar xzf mongodb.tgz -C /opt/pingidentity/mongo/ --strip-components=1
-
Update shell path variable and reload the shell.
/opt/pingidentity# echo PATH=$PATH:/opt/pingidentity/mongo/bin >> ~/.bashrc; /opt/pingidentity# source ~/.bashrc
-
Copy the contents of the
/opt/pingidentity/mongo/key
directory from the primary node to the new node into/opt/pingidentity/mongo/key
. -
Start the MongoDB database on the new node.
/opt/pingidentity# cd mongo /opt/pingidentity/mongo# mongod --auth --dbpath ./data/ --logpath ./logs/mongo.log --port 27017 --replSet absrs01 --fork --keyFile ./key/mongodb-keyfile -bind_ip 0.0.0.0
-
Connect to the mongo shell of the primary node and run the following command.
absrs01:PRIMARY> rs.add({"host": "<IP address of new node>:27017", "priority": 2})
On executing step-six, the state of the new node will change to STARTUP2. This indicates that the synchronization between the replica set and the new node has started. -
Verify if the new node is added as a Secondary node to the replica set using the following command.
absrs01:PRIMARY> rs.status()