Remove Members from Replica Set

Remove Members from Replica Set

To remove a member of a replica set use either of the following procedures.

 Remove a Member Using rs.remove()

  • Shut down the mongod instance for the member you wish to remove. To shut down the instance, connect using the mongo shell and the db.shutdownServer() method.
  • Connect to the replica set’s current primary. To determine the current primary, use db.isMaster() while connected to any member of the replica set.
  • Use rs.remove() in either of the following forms to remove the member:

rs.remove(“mongod3.example.net:27017”)

rs.remove(“mongod3.example.net”)

MongoDB disconnects the shell briefly as the replica set elects a new primary. The shell then automatically reconnects. The shell displays a DBClientCursor::init call() failed error even though the command succeeds.

Remove a Member Using rs.reconfig()

To remove a member you can manually edit the replica set configuration document, as described here.

  • Shut down the mongod instance for the member you wish to remove. To shut down the instance, connect using the mongo shell and the db.shutdownServer() method.
  • Connect to the replica set’s current primary. To determine the current primary, use db.isMaster() while connected to any member of the replica set.
  • Issue the rs.conf() method to view the current configuration document and determine the position in the members array of the member to remove:

As an example, mongod_C.example.net is in position 2 of the following configuration file:

{        “_id” : “rs”,

“version” : 7,

“members” : [

{

“_id” : 0,

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

},

{

“_id” : 1,

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

},

{

“_id” : 2,

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

}

]

}

  • Assign the current configuration document to the variable cfg: cfg = rs.conf()
  • Modify the cfg object to remove the member. As an example to remove mongod_C.example.net:27017 use the following JavaScript operation: cfg.members.splice(2,1)
  • Overwrite the replica set configuration document with the new configuration by issuing the following: reconfig(cfg). As a result of rs.reconfig() the shell will disconnect while the replica set renegotiates which member is primary. The shell displays a DBClientCursor::init call() failed error even though the command succeeds, and will automatically reconnected.
  • To confirm the new configuration, issue rs.conf(). For the example above the output would be:

{

“_id” : “rs”,

“version” : 8,

“members” : [

{   “_id” : 0,

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

},

{  “_id” : 1,

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

}

]

}

Apply for MongoDB Certification Now!!

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

Back to Tutorial

Share this post
[social_warfare]
Add Members to a Replica Set
Sharding Introduction

Get industry recognized certification – Contact us

keyboard_arrow_up