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 or as part of disaster recovery.
You cannot restore a single data set to three new
mongod instances and then create a replica set. If you copy the data set to each
mongod instance and then create the replica set, MongoDB will force the secondaries to perform an initial sync. The procedures in this document describe the correct and efficient ways to deploy a restored replica set.
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 . For Ops Manager, an on-premise solution available in MongoDB Enterprise Advanced , see also the Ops Manager Backup overview .
If you are restoring from a filesystem backup (or any backup with the local database), drop the
Start a standalone
mongod using the data files from the backup as the data path.
mongod instance as 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. For config server replica set (CSRS), include the
--configsvr option. Include any other options as appropriate for your deployment.
Before binding to a non-localhost (e.g. publicly accessible) IP address, ensure you have secured your cluster from unauthorized access. For a complete list of security recommendations, see Security Checklist. At minimum, consider enabling authentication and hardening network infrastructure.
New in version 3.6:
All MongoDB collections have UUIDs by default. When MongoDB restores collections, the restored collections retain their original UUIDs. When restoring a collection where no UUID was present, MongoDB generates a UUID for the restored collection.
For more information on collection UUIDs, see Collections.
mongo shell to the
From the same machine where one of the
mongod is running (in this tutorial,
mongodb0.example.net), start the
mongo shell. To connect to the
mongod listening to localhost on the default port of
27017, simply issue:
Depending on your path, you may need to specify the path to the
rs.initiate() on one and only one member of the replica set:
MongoDB initiates a set that consists of the current member and that uses the default replica set configuration.
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.
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
Use the following sequence of operations to “seed” additional members of the replica set with the restored data by copying MongoDB data files directly.
mongod instance that you restored.
Use the following sequence of operations to “seed” additional members of the replica set with the restored data using the default initial sync operation.