This version of the documentation is archived and no longer supported.

Restore a Replica Set from MongoDB Backups

This procedure outlines the process for taking MongoDB data and restoring that data into a new replica set. Use this approach for seeding test deployments from production backups as well as part of disaster recovery.

You cannot restore a single data set to three new mongod instances and then create a replica set. In this situation MongoDB will force the secondaries to perform an initial sync. The procedures in this document describe the correct and efficient ways to deploy a replica set.

Restore Database into a Single Node Replica Set


Obtain backup MongoDB Database files.

The backup files may come from a file system snapshot. The MongoDB Cloud Manager produces MongoDB database files for stored snapshots and point in time snapshots.

You can also use mongorestore to restore database files using data created with mongodump. See Back Up and Restore with MongoDB Tools for more information.


Start a mongod using data files from the backup as the data path.

Start a mongod for a new single-node replica set. Specify the path to the backup data files with --dbpath option and the replica set name with the --replSet option.

mongod --dbpath /data/db --replSet <replName>

Connect a mongo shell to the mongod instance.

For example, to connect to a mongod running on localhost on the default port of 27017, simply issue:


Initiate the new replica set.

Use rs.initiate() on the replica set member:


MongoDB initiates a set that consists of the current member and that uses the default replica set configuration.

Add Members to the Replica Set

MongoDB provides two options for restoring secondary members of a replica set:

  • Manually copy the database files to each data directory.
  • Allow initial sync to distribute data automatically.

The following sections outlines both approaches.


If your database is large, initial sync can take a long time to complete. For large databases, it might be preferable to copy the database files onto each host.

Copy Database Files and Restart mongod Instance

Use the following sequence of operations to “seed” additional members of the replica set with the restored data by copying MongoDB data files directly.


Shut down the mongod instance that you restored.

Use --shutdown or db.shutdownServer() to ensure a clean shut down.


Copy the primary’s data directory to each secondary.

Copy the primary’s data directory into the dbPath of the other members of the replica set. The dbPath is /data/db by default.


Start the mongod instance that you restored.


Add the secondaries to the replica set.

In a mongo shell connected to the primary, add the secondaries to the replica set using rs.add(). See Deploy a Replica Set for more information about deploying a replica set.

Update Secondaries using Initial Sync

Use the following sequence of operations to “seed” additional members of the replica set with the restored data using the default initial sync operation.


Ensure that the data directories on the prospective replica set members are empty.


Add each prospective member to the replica set.

When you add a member to the replica set, Initial Sync copies the data from the primary to the new member.