Page created: 1 Nov 2021
|
Page updated: 3 May 2022
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.
Note:
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})
Note: 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()