- MongoDB Tutorials >
- Use
mongodump
andmongorestore
to Backup and Restore MongoDB Databases
Use mongodump
and mongorestore
to Backup and Restore MongoDB Databases¶
This document describes the process for writing the entire contents of your MongoDB instance to a file in a binary format. If disk-level snapshots are not available, this approach provides the best option for full system database backups. If your system has disk level snapshot capabilities, consider the backup methods described in Use Filesystem Snapshots to Backup and Restore MongoDB Databases.
Backup a Database with mongodump
¶
Basic mongodump
Operations¶
The mongodump
utility can back up data by either:
- connecting to a running
mongod
ormongos
instance, or - accessing data files without an active instance.
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 local database instance (e.g. 127.0.0.1
or
localhost
) on port 27017
and creates a database backup named
dump/
in the current directory.
To backup data from a mongod
or mongos
instance
running on the same machine and on the default port of 27017
use the following command:
Note
Data created by the mongodump
tool from the
2.2 distribution is incompatible with versions of
mongorestore
from the 2.0 distribution and earlier.
To limit the amount of data included in the database dump, you can
specify --db
and
--collection
as options to the
mongodump
command. For example:
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.
This command creates a dump of the collection named collection
from the database test
in a dump/
subdirectory of the current
working directory.
Point in Time Operation Using Oplogs¶
Use the --oplog
option with
mongodump
to collect the oplog entries to build a
point-in-time snapshot of a database within a replica set. With --oplog
, mongodump
copies all the data from
the source database as well as all of the oplog entries from
the beginning of the backup procedure to until the backup procedure
completes. This backup procedure, in conjunction with
mongorestore --oplogReplay
,
allows you to restore a backup that reflects a consistent and specific
moment in time.
Create Backups Without a Running mongod
Instance¶
If your MongoDB instance is not running, you can use the
--dbpath
option to specify the
location to your MongoDB instance’s database files. mongodump
reads from the data files directly with this operation. This
locks the data directory to prevent conflicting writes. The
mongod
process must not be running or attached to these
data files when you run mongodump
in this
configuration. Consider the following example:
Create Backups from Non-Local mongod
Instances¶
The --host
and
--port
options for
mongodump
allow you to connect to and backup from a remote host.
Consider the following example:
On any mongodump
command you may, as above, specify username
and password credentials to specify database authentication.
Restore a Database with mongorestore
¶
The mongorestore
utility restores a binary backup created by
mongodump
. By default, mongorestore
looks for a
database backup in the dump/
directory.
The mongorestore
utility can restore data either by:
- connecting to a running
mongod
ormongos
directly, or - writing to a local database path without use of a running
mongod
.
The mongorestore
utility can restore either an entire
database backup or a subset of the backup.
A mongorestore
command that connects to an active
mongod
or mongos
has the following prototype form:
A mongorestore
command that writes to data files
without using a running mongod
has the following prototype
form:
Consider the following example:
Here, mongorestore
imports the database backup in
the dump-2012-10-25
directory to the mongod
instance
running on the localhost interface.
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 a Subset of data from a Binary Database Dump¶
mongorestore
also includes the ability to a filter
to all input before inserting it into the new database. Consider the
following example:
Here, mongorestore
only adds documents to the database from
the dump located in the dump/
folder if the documents have a
field name field
that holds a value of 1
. Enclose the
filter in single quotes (e.g. '
) to prevent the filter from
interacting with your shell environment.
Restore without a Running mongod
¶
mongorestore
can write data to MongoDB data files without
needing to connect to a mongod
directly.
Here, mongorestore
restores the database dump located in
dump/
folder into the data files located at /srv/mongodb
.
Additionally, the --journal
option ensures that
mongorestore
records all operation in the durability
journal. The journal prevents data file corruption if anything
(e.g. power failure, disk failure, etc.) interrupts the restore
operation.
See also
mongodump and mongorestore.
Restore Backups to Non-Local mongod
Instances¶
By default, 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 --host
and --port
options.
Consider the following example:
As above, you may specify username and password connections if your
mongod
requires authentication.