To create a backup in MongoDB, either copy the files directly, or use one of several backup/management tools.
There are several ways to backup a MongoDB database:
- Copy the data files
- Use
mongodump
- Use MongoDB Cloud Manager
- Use Ops Manager
Copy the Data Files
You can copy the underlying data files that MongoDB uses to store data. These are located in the data directory.
The default location of the data directory is /data/db, however, if you use a different location you will need to use that instead.
You should copy the whole directory for a complete backup.
You can also use snapshots if the volume supports it. For example, on Linux, use LVM (Logical Volume Manager) to create a snapshot, then you can copy from that snapshot to your backup site/remote location.
Use mongodump
You can use
mongodump
to backup the data and mongorestore
to restore it.
To quickly backup all contents of the running server, open a new Terminal/Command Prompt, change to a directory that you want the /dump folder to be created in, and type the following:
You will need provide the full path if the MongoDB bin directory is not in your PATH.
If you find that you can't run mongodump, be sure that you've either exited the mongo utility, or opened a new Terminal/Command Prompt window before running mongodump, as it is a separate utility.
Resulting message:
2016-07-12T15:44:34.467+0700 writing music.artists to 2016-07-12T15:44:34.467+0700 writing music.musicians to 2016-07-12T15:44:34.467+0700 writing music.catalog to 2016-07-12T15:44:34.468+0700 done dumping music.artists (13 documents) 2016-07-12T15:44:34.469+0700 done dumping music.musicians (10 documents) 2016-07-12T15:44:34.469+0700 done dumping music.catalog (10 documents) 2016-07-12T15:44:34.470+0700 writing music.producers to 2016-07-12T15:44:34.470+0700 writing music.jazz to 2016-07-12T15:44:34.470+0700 done dumping music.producers (5 documents) 2016-07-12T15:44:34.470+0700 done dumping music.jazz (1 document) 2016-07-12T15:44:34.534+0700 writing test.restaurants to 2016-07-12T15:44:34.705+0700 done dumping test.restaurants (25359 documents)
And here's what that looks like on my Mac's Finder:
As you can see, it has created a folder called dump, then a folder for each database, then dumped all collections and their metadata into the respective database folder. I've expanded the music database folder to show the files within that directory.
Note that
mongodump
overwrites output files if they exist in the backup data folder, so be sure to move or rename any files you need to keep before running mongodump
again.Backup a Single Database
You can backup a single database by specifying the name of the database in the
--db
parameter:Backup a Single Collection
You can backup a single collection by specifying the name of the collection in the
--collection
parameter:Specify a Backup Location
Use the
--out
parameter to specify the directory that you'd like the backup to be written to:More Options
mongodump
has many more options for specifying how the data is backed up. You can always run mongodump --help
to see which options are available.
Restoring a mongodump
Backup
You can restore any
mongodump
backup by running mongorestore
. which works in a similar way to mongodump
.
See
mongorestore --help
for more info.mongodump
and mongorestore
are mainly intended for smaller deployments, and for partial backup and restores based on a query, syncing from production to staging or development environments, or changing the storage engine of a standalone.
For larger systems, or sharded clusters, or replica sets, use a more robust backup system, such MongoDB Cloud Manager or Ops Manager.
MongoDB Cloud Manager
MongoDB Cloud Manager is a hosted platform for managing MongoDB.
You can use MongoDB Cloud Manager to continually back up MongoDB replica sets and sharded clusters by reading the oplog data from your MongoDB deployment.
MongoDB Cloud Manager works on a subscription basis. More info here.
Ops Manager
Ops Manager is like MongoDB Cloud Manager, except it is installed on your local environment (i.e. not in the cloud). So you can use it for monitoring, automating, and backup up your MongoDB deployment.
Ops Manager is available to MongoDB Subscribers.
0 Comments