Mongo DB Replication
Mongo DB Replication
Why Replication?
Disaster recovery
MongoDB achieves replication by the use of replica set. A replica set is a group of mongod instances that
host the same data set. In a replica, one node is primary node that receives all write operations. All
other instances, such as secondaries, apply operations from the primary so that they have the same data
set. Replica set can have only one primary node.
Replica set is a group of two or more nodes (generally minimum 3 nodes are required).
In a replica set, one node is primary node and remaining nodes are secondary.
At the time of automatic failover or maintenance, election establishes for primary and a new
primary node is elected.
After the recovery of failed node, it again join the replica set and works as a secondary node.
A typical diagram of MongoDB replication is shown in which client application always interact with the
primary node and the primary node then replicates the data to the secondary nodes.
Replica Set Features
A cluster of N nodes
Automatic failover
Automatic recovery
In this tutorial, we will convert standalone MongoDB instance to a replica set. To convert to replica set,
following are the steps −
Start the MongoDB server by specifying -- replSet option. Following is the basic syntax of --
replSet −
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
Example
It will start a mongod instance with the name rs0, on port 27017.
Now start the command prompt and connect to this mongod instance.
To check the replica set configuration, issue the command rs.conf(). To check the status of
replica set issue the command rs.status().
To add members to replica set, start mongod instances on multiple machines. Now start a mongo client
and issue a command rs.add().
Syntax
>rs.add(HOST_NAME:PORT)
Example
Suppose your mongod instance name is mongod1.net and it is running on port 27017. To add this
instance to replica set, issue the command rs.add() in Mongo client.
>rs.add("mongod1.net:27017")
>
You can add mongod instance to replica set only when you are connected to primary node. To check
whether you are connected to primary or not, issue the command db.isMaster() in mongo client.