You may need to use one of these procedures, for example, in a
geographically distributed replica set, where no local group of
members can reach a majority. See Replica Set Elections for more
information on this situation.
This procedure lets you recover while a majority of replica set
members are down or unreachable. You connect to any surviving member and
use the force option to the rs.reconfig() method.
The force option forces a new configuration onto the member. Use this procedure only to
recover from catastrophic interruptions. Do not use force every
time you reconfigure. Also, do not use the force option in any automatic
scripts and do not use force when there is still a primary.
To force reconfiguration:
Back up a surviving member.
Connect to a surviving member and save the current configuration.
Consider the following example commands for saving the configuration:
On the same member, remove the down and unreachable members of the
replica set from the members array by
setting the array equal to the surviving members alone. Consider the
following example, which uses the cfg variable created in the
On the same member, reconfigure the set by using the
rs.reconfig() command with the force option set to
This operation forces the secondary to use the new configuration. The
configuration is then propagated to all the surviving members listed
in the members array. The replica set then elects a new primary.
When you use force:true, the version number in the replica
set configuration increases significantly, by tens or hundreds
of thousands. This is normal and designed to prevent set version
collisions if you accidentally force re-configurations on both
sides of a network partition and then the network partitioning
If the failure or partition was only temporary, shut down or
decommission the removed members as soon as possible.
These procedures are for situations where a majority of the
replica set members are down or unreachable. If a majority is
running, then skip these procedures and instead use the
rs.reconfig() command according to the examples in
If you run a pre-2.0 version and a majority of your replica set is down,
you have the two options described here. Both involve replacing the
This option selects a surviving replica set member to be the
new primary and to “seed” a new replica set. In the following
procedure, the new primary is db0.example.net. MongoDB copies the
data from db0.example.net to all the other members.