OPTIONS

Convert a Standalone to a Replica Set

This tutorial describes the process for converting a standalone mongod instance into a three-member replica set. Use standalone instances for testing and development, but always use replica sets in production. To install a standalone instance, see the installation tutorials.

To deploy a replica set without using a pre-existing mongod instance, see Deploy a Replica Set.

Procedure

  1. Shut down the standalone mongod instance.

  2. Restart the instance. Use the --replSet option to specify the name of the new replica set.

    For example, the following command starts a standalone instance as a member of a new replica set named rs0. The command uses the standalone’s existing database path of /srv/mongodb/db0:

    mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0
    

    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.

    For more information on configuration options, see Configuration File Options and the mongod manual page.

  3. Connect to the mongod instance.

  4. Use rs.initiate() to initiate the new replica set:

    rs.initiate()
    

    The replica set is now operational.

    To view the replica set configuration, use rs.conf(). To check the status of the replica set, use rs.status().

Expand the Replica Set

Add additional replica set members by doing the following:

  1. On two distinct systems, start two new standalone mongod instances. For information on starting a standalone instance, see the installation tutorial specific to your environment.

  2. On your connection to the original mongod instance (the former standalone instance), issue a command in the following form for each new instance to add to the replica set:

    rs.add("<hostname><:port>")
    

    Replace <hostname> and <port> with the resolvable hostname and port of the mongod instance to add to the set. For more information on adding a host to a replica set, see Add Members to a Replica Set.

Sharding Considerations

If the new replica set is part of a sharded cluster, change the shard host information in the config database by doing the following:

  1. Connect to one of the sharded cluster’s mongos instances and issue a command in the following form:

    db.getSiblingDB("config").shards.save( {_id: "<name>", host: "<replica-set>/<member,><member,><...>" } )
    

    Replace <name> with the name of the shard. Replace <replica-set> with the name of the replica set. Replace <member,><member,><> with the list of the members of the replica set.

  2. Restart all mongos instances. If possible, restart all components of the replica sets (i.e., all mongos and all shard mongod instances).