Deploy a Replica Set

Deploy a Replica Set

Three member replica sets provide enough redundancy to survive most network partitions and other system faailures. These sets also have sufficient capacity for many distributed read operations. Replica sets should always have an odd number of members. This ensures that elections will proceed smoothly. The basic procedure is to start the mongod instances that will become members of the replica set, configure the replica set itself, and then add the mongod instances to it.

For production deployments, you should maintain as much separation between members as possible by hosting the mongod instances on separate machines. When using virtual machines for production deployments, you should place each mongod instance on a separate host server serviced by redundant power circuits and redundant network paths. Before you can deploy a replica set, you must install MongoDB on each system that will be part of your replica set.

Before creating your replica set, you should verify that your network configuration allows all possible connections between each member. For a successful replica set deployment, every member must be able to connect to every other member.

Considerations When Deploying a Replica Set

Architecture – In a production, deploy each member of the replica set to its own machine and if possible bind to the standard MongoDB port of 27017. Use the bind_ip option to ensure that MongoDB listens for connections from applications on configured addresses. For a geographically distributed replica sets, ensure that the majority of the set’s mongod instances reside in the primary site.

Connectivity – Ensure that network traffic can pass between all members of the set and all clients in the network securely and efficiently. Consider the following:

  • Establish a virtual private network. Ensure that your network topology routes all traffic between members within a single site over the local area network.
  • Configure access control to prevent connections from unknown clients to the replica set.
  • Configure networking and firewall rules so that incoming and outgoing packets are permitted only on the default MongoDB port and only from within your deployment.

Finally ensure that each member of a replica set is accessible by way of resolvable DNS or hostnames. You should either configure your DNS names appropriately or set up your systems’ /etc/hosts file to reflect this configuration.

Configuration – Specify the run time configuration on each system in a configuration file stored in /etc/mongodb.conf or a related location. Create the directory where MongoDB stores data files before deploying MongoDB.

The procedure is as –

Start each member of the replica set with the appropriate options – For each member, start a mongod and specify the replica set name through the replSet option. Specify any other parameters specific to your deployment. If your application connects to more than one replica set, each set should have a distinct name. Some drivers group replica set connections by replica set name. The following example specifies the replica set name through the –replSet command-line option:

mongod –replSet “rs0”

The following example specifies the name through a configuration file:

mongod –config $HOME/.mongodb/config

In production deployments, you can configure a control script to manage this process. Control scripts are beyond the scope of this document.

Open a mongo shell and connect to one of the replica set members – Connect to a mongod

Initiate the replica set – Use rs.initiate(). MongoDB initiates a set that consists of the current member and that uses the default replica set configuration.

Verify the initial replica set configuration – Use rs.conf() to display the replica set configuration object.  The replica set configuration object resembles the following:

{   “_id” : “rs0”,

“version” : 1,

“members” : [

{

“_id” : 1,

“host” : “mongodb0.example.net:27017”

}

]

}

Add the remaining members to the replica set – Add the remaining members with the rs.add() method. The following example adds two members:

rs.add(“mongodb1.example.net”)

rs.add(“mongodb2.example.net”)

When complete, you have a fully functional replica set. The new replica set will elect a primary.

Check the status of the replica set – Use the rs.status() operation:

Apply for MongoDB Certification Now!!

https://www.vskills.in/certification/databases/mongodb-server-administrator

Back to Tutorial

Replication Introduction
Convert a Standalone to a Replica Set

Get industry recognized certification – Contact us

keyboard_arrow_up
Open chat
Need help?
Hello 👋
Can we help you?