翻译或纠错本页面

replSetReconfig

replSetReconfig

The replSetReconfig command modifies the configuration of an existing replica set. You can use this command to add and remove members, and to alter the options set on existing members. Use the following syntax:

{ replSetReconfig: <new_config_document>, force: false }

You may also run replSetReconfig with the shell’s rs.reconfig() method.

Behaviors

Be aware of the following replSetReconfig behaviors:

  • You must issue this command against the admin database of the current primary member of the replica set.

  • You can optionally force the replica set to accept the new configuration by specifying force: true. Use this option if the current member is not primary or if a majority of the members of the set are not accessible.

    警告

    Forcing the replSetReconfig command can lead to a rollback situation. Use with caution.

    Use the force option to restore a replica set to new servers with different hostnames. This works even if the set members already have a copy of the data.

  • A majority of the set’s members must be operational for the changes to propagate properly.

  • If you are reconfiguring a set that has 2 members where only one member votes, and you are adding a member, you will need to specify the force option.

  • This command can cause downtime as the set renegotiates primary-status. Typically this is 10-20 seconds, but could be as long as a minute or more. Therefore, you should attempt to reconfigure only during scheduled maintenance periods.

  • In some cases, replSetReconfig forces the current primary to step down, initiating an election for primary among the members of the replica set. When this happens, the set will drop all current connections.

replSetReconfig obtains a special mutually exclusive lock to prevent more than one replSetReconfig operation from occurring at the same time.