On this page
This tutorial describes the process for creating backups and restoring data using the utilities provided with MongoDB. The
mongorestore utilities work with BSON data dumps, and are useful for creating backups of small deployments. For resilient and non-disruptive backups, use a file system or block-level disk snapshot function, such as the methods described in the MongoDB Backup Methods document.
mongorestore operate by interacting with a running
mongod instance, they can impact the performance of your running database. Not only do the tools create traffic for a running database instance, they also force the database to read all data through memory. When MongoDB reads infrequently used data, it can evict more frequently accessed data, causing a deterioration in performance for the database’s regular workload.
When backing up your data with MongoDB’s tools, consider the following guidelines:
- Label files so that you can identify the contents of the backup as well as the point in time that the backup reflects.
- Use an alternative backup strategy such as Filesystem Snapshots or MongoDB Cloud Manager if the performance impact of
mongorestoreis unacceptable for your use case.
--oplogto capture incoming write operations during the
mongodumpoperation to ensure that the backups reflect a consistent data state.
- Ensure that your backups are usable by restoring them to a test MongoDB deployment.
MongoDB Backup Methods and MongoDB Cloud Manager Backup documentation for more information on backing up MongoDB instances. Additionally, consider the following reference documentation for the MongoDB import/export tools:
Binary BSON Dumps
mongodump utilities work with BSON data dumps, and are useful for creating backups of small deployments. For resilient and non-disruptive backups, use a file system or block-level disk snapshot function, such as the methods described in the MongoDB Backup Methods document.
Back Up a Database with
mongodump excludes the content of the
local database in its output.
mongodump against a MongoDB deployment that has access control enabled, you must have privileges that grant
find action for each database to back up. The built-in
backup role provides the required privileges to perform backup of any and all databases.
The utility can create a backup for an entire server, database or collection, or can use a query to backup just part of a collection.
When you run
mongodump without any arguments, the command connects to the MongoDB instance on the local system (e.g.
localhost) on port
27017 and creates a database backup named
dump/ in the current directory.
You can also specify the
--port of the MongoDB instance that the
mongodump should connect to. For example:
mongodump --host mongodb.example.net --port 27017
mongodump will write BSON files that hold a copy of data accessible via the
mongod listening on port
mongodb.example.net host. See Create Backups from Non-Local mongod Instances for more information.
To specify a different output directory, you can use the
--out or -o option:
mongodump --out /data/backup/
To limit the amount of data included in the database dump, you can specify
--collection as options to
mongodump. For example:
mongodump --collection myCollection --db test
This operation creates a dump of the collection named
myCollection from the database
test in a
dump/subdirectory of the current working directory.
mongodump overwrites output files if they exist in the backup data folder. Before running the
mongodumpcommand multiple times, either ensure that you no longer need the files in the output folder (the default is the
dump/ folder) or rename the folders or files.
Point in Time Operation Using Oplogs
--oplog option with
mongodump to collect the oplog entries to build a point-in-time snapshot of a database within a replica set. With
mongodump copies all the data from the source database as well as all of the oplog entries from the beginning to the end of the backup procedure. This operation, in conjunction with
mongorestore --oplogReplay, allows you to restore a backup that reflects the specific moment in time that corresponds to when
mongodump completed creating the dump file.
Create Backups from Non-Local
--port options for
mongodump allow you to connect to and backup from a remote host. Consider the following example:
mongodump --host mongodb1.example.net --port 3017 --username user --password pass --out /opt/backup/mongodump-2013-10-24
mongodump command you may, as above, specify username and password credentials to specify database authentication.
Restore a Database with
If the backup data includes
system.profile collection data and the target database does not contain the
mongorestore attempts to create the collection even though the program does not actually restore
system.profile documents. As such, the user requires additional privileges to perform
convertToCapped actions on the
system.profile collection for a database.
restore role is insufficient to replay the oplog. To replay the oplog, create a user-defined role that has
anyAction on anyResource and grant only to users who must run
mongorestore can restore either an entire database backup or a subset of the backup.
mongorestore --port <port number> <path to the backup>
Consider the following example:
Restore Point in Time Oplog Backup
If you created your database dump using the
--oplog option to ensure a point-in-time snapshot, call
mongorestore with the
--oplogReplay option, as in the following example:
You may also consider using the
mongorestore --objcheck option to check the integrity of objects while inserting them into the database, or you may consider the
mongorestore --drop option to drop each collection from the database before restoring from backups.
Restore Backups to Non-Local
mongorestore connects to a MongoDB instance running on the localhost interface (e.g.
127.0.0.1) and on the default port (
27017). If you want to restore to a different host or port, use the
Consider the following example:
mongorestore --host mongodb1.example.net --port 3017 --username user --password pass /opt/backup/mongodump-2013-10-24
As above, you may specify username and password connections if your
mongod requires authentication.
Reference link – https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/