How do I create a MongoDB dump of my database?
DatabaseMongodbDatabase DumpDatabase Problem Overview
What command should I use to create a MongoDB dump of my database?
Database Solutions
Solution 1 - Database
To dump your database for backup you call this command on your terminal
mongodump --db database_name --collection collection_name
To import your backup file to mongodb you can use the following command on your terminal
mongorestore --db database_name path_to_bson_file
Solution 2 - Database
You can also use gzip
for taking backup of one collection and compressing the backup on the fly:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
or with a date in the file name:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
Update:
Backup all collections of a database in a date folder. The files are gziped:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
Or for a single archive:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
Or when mongodb is running inside docker:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
Solution 3 - Database
Use mongodump
:
$ ./mongodump --host prod.example.com
connected to: prod.example.com
all dbs
DATABASE: log to dump/log
log.errors to dump/log/errors.bson
713 objects
log.analytics to dump/log/analytics.bson
234810 objects
DATABASE: blog to dump/blog
blog.posts to dump/log/blog.posts.bson
59 objects
DATABASE: admin to dump/admin
Source: http://www.mongodb.org/display/DOCS/Import+Export+Tools
Solution 4 - Database
This command will make a dump of given database in json and bson format.
mongodump -d <database name> -o <target directory>
Solution 5 - Database
Backup/Restore Mongodb with timing.
Backup:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
--db
argument for databse name
--out
argument for path of output
Restore:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
argument for drop databse before restore
Timing:
You can use crontab for timing backup:
sudo crontab -e
It opens with editor(e.g. nano)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
backup every day at 03:03 AM
> Depending on your MongoDB database sizes you may soon run out of disk > space with too many backups. That's why it's also recommended to clean > the old backups regularly or to compress them. For example, to delete > all the backups older than 7 days you can use the following bash > command:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
delete all the backups older than 7 days
Good Luck.
Solution 6 - Database
You need to open command prompt as an administrator in a folder where your Mongo is installed (in my case: C:\Program Files\MongoDB\Server\3.4\bin). If you want to dump your whole database, you can just use:
mongodump --db database_name
You also have posibilities to dump only certain collection(s), or to dump all but certain collection(s).
If you want to dump only one collection (for example users):
mongodump --db database_name --collection users
If you want to dump all but users collection:
mongodump --db database_name --excludeCollection=users
It is also possible to output the dump to an archive file:
mongodump --archive=test.archive --db database_name
Solution 7 - Database
> Edit: Updated commands based on latest version of MongoDB v4.4.2
to export
mongodump -d <database name> -o <backup-folder>
to import
mongorestore -d <database name> --dir <backup-folder>
Solution 8 - Database
There is a utility called : mongodump On the mongo command line you can type :
>./mongodump
The above will create a dump of all the databases on your localhost. To make dump of a single collection use:
./mongodump --db blog --collection posts
Have a look at : mongodump
Solution 9 - Database
You can dump your database and restore with bellow command
mongodb -d <Your_db_name> -o <path of your folder>
for example my database name is tracking i have dump in dump folder
mongodb -d tracking -o dump
Restoring dump
mongorestore -d <databasename> <dum_path>
mongorestore -d tracking dump/tracking
Solution 10 - Database
Following command connect to the remote server to dump a database:
<> optional params use them if you need them
-
host - host name port
-
listening port username
-
username of db db
-
db name ssl
-
secure connection out
-
output to a created folder with a name
mongodump --host
--port --username --db --ssl --password --out _date+"%Y-%m-%d"
Solution 11 - Database
If your database in the local system. Then you type the below command. for Linux terminal
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
If database user and password are there then you below code.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
This worked very well in my Linux terminal.
Solution 12 - Database
cmd -->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
Solution 13 - Database
Mongo dump and restore with uri to local
mongodump --uri "mongodb://USERNAME:PASSWORD@IP_OR_URL:PORT/DB_NAME" --collection COLLECTION_NAME -o LOCAL_URL
Omitting --collection COLLECTION_NAME will dump entire DB.
Solution 14 - Database
Below command will work to take dump of mongo db .
> mongodump -d
On Windows : try this one where c:\mongodump is dump file location , It will create metadata in json, and backup in bson format
> C:\MongoDB\bin>mongodump -d
Solution 15 - Database
use "path" for windows else it gives the error as: positional arguments not allowed
Solution 16 - Database
Or you can make backup script on Windows, remember to add Winrar to %PATH%
bin\mongodump --db=COL1 -o D:\BACK\COL1
rar.exe a -ep1 -r COL1.rar COL1
rename COL1.rar "COL1_%date:~10,4%_%date:~7,2%_%date:~4,2%_%time:~0,2%_%time:~3,2%.rar"
#rmdir /s /q COL1 -> don;t run this on your mongodb/ dir !!!!!
Solution 17 - Database
take mongodb backup for particular db and delete 7 days old backup using bin sh command :-
#!/bin/bash
MONGO_DATABASE="nexgtv_16"
APP_NAME="test"
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/home/mongodbbackups/backups/$APP_NAME"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
$MONGODUMP_PATH -d $MONGO_DATABASE
mkdir -p $BACKUPS_DIR
mv dump $BACKUP_NAME
tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
rm -rf $BACKUP_NAME
find /home/mongodbbackups/backups/test/ -mindepth 1 -mtime +7 -delete
Solution 18 - Database
Use -v to see progress of backup data
mongodump -v --db dbname --out /pathforbackup/NewFolderforBackupData
you can use it for restore also
mongorestore -v --db dbname --drop /pathforbackup/NewFolderforBackupData/dbname
with multile v like -vvvv you will get more information
Solution 19 - Database
I created a library called BackSync which helps to backup and sync MongoDB databases (also local files/directories and some other known databases), you can also schedule it with pm2 to run the process automatically.
Install:
npm i -g @ayoubamine/backsync
Add your MongoDB backup source:
backsync add backup
Add your sync source (Local, Google Drive, ...):
backsync add sync
Then, run the process:
backsync run
Solution 20 - Database
mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out /path/folder
mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out /path/folder.gz