- Administration >
- Administration Tutorials >
- Backup and Recovery >
- Restore a Replica Set from MongoDB Backups
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. These files may come from a file system snapshot. The MongoDB Cloud Manager produces MongoDB database files for stored snapshots and point and time snapshots. You can also use
mongorestore
to restore database files using data created withmongodump
. See Back Up and Restore with MongoDB Tools for more information.Start a
mongod
using data files from the backup as thedbpath
. In the following example,/data/db
is thedbpath
to the data files.Use
rs.initiate()
to initiate the new replica set.
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.
Note
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. Using--shutdown
ordb.shutdownServer()
to ensure a clean shut down. - Copy the primary’s data directory into the
dbpath
of the other members of the replica set. Thedbpath
is/data/db
by default. - Start the
mongod
instance that you restored. - In a
mongo
shell connected to the primary, add the secondaries to the replica set usingrs.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. Initial Sync will copy the data from the primary to the other members of the replica set.