Back Up and Restore with MongoDB Tools
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:
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.
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.
mongodump will write BSON files that hold a copy of data accessible via the
mongod listening on port
27017 of the
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:
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
mongodump command 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.
--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.
To restore data to a MongoDB deployment that has access control enabled, the
restore role provides the necessary privileges to restore data from backups if the data does not include
system.profile collection data and you run
mongorestore without the