Backup MongoDB – mongodump
Backup MongoDB – To backup data in MongoDB, MongoDB provides mongodump utility to backup data at different levels. Using mongodump, you may backup only a particular collection of a database, or single database, or all databases of a specified MongoDB instance.
In this tutorial, we will learn how to use mongodump utility to take backup of MongoDB Databases/Collections.
Using mongodump utility
mongodump is an utility that could be run from a Terminal.
Following are the usages of mongodump utility.
1. To create backup for a collection in database, use mongodump with options: Collection Name and Database Name.
mongodump --collection COLLECTION_NAME --db DB_NAME
2. To create backup for a database, use mongodump with options: Database Path and Output Directory for Backup.
mongodump --dbpath DB_PATH --out /OUTPUT/DIRECTORY/FOR/BACKUP
3. To create backup all the databases linked to a specific MongoDB instance, use mongodump with options: Host Name and Port Number at which MongoDB instance is running.
mongodump --host HOST_NAME --port PORT_NUMBER
4. Running mongodump utility without any options creates backup for all databases linked to the MongoDB running at localhost (127.0.0.1) and port 27017.
mongodump
Note : When no –out option is specified, a directory named dump is created at the location from which mongodump utility is run.
Examples for MongoDB Backup
Make sure MongoDB Instance is running. If not, start one as shown below :
~$ sudo mongod -dbpath /var/lib/mongodb/
Backup MongoDB
Open a Terminal and run mongodump utility with no arguments
~$ mongodump 2018-01-07T18:06:41.181+0530 writing admin.system.version to 2018-01-07T18:06:41.182+0530 done dumping admin.system.version (1 document) 2018-01-07T18:06:41.182+0530 writing school.students to 2018-01-07T18:06:41.182+0530 writing tutorialkart.people to 2018-01-07T18:06:41.182+0530 writing tutorialkart.stores to 2018-01-07T18:06:41.183+0530 writing tutorialkart.customers to 2018-01-07T18:06:41.183+0530 done dumping school.students (9 documents) 2018-01-07T18:06:41.183+0530 writing tutorialkart.webpages to 2018-01-07T18:06:41.184+0530 done dumping tutorialkart.people (8 documents) 2018-01-07T18:06:41.184+0530 writing newdb.users to 2018-01-07T18:06:41.184+0530 done dumping tutorialkart.customers (5 documents) 2018-01-07T18:06:41.184+0530 writing school.totals to 2018-01-07T18:06:41.184+0530 done dumping newdb.users (4 documents) 2018-01-07T18:06:41.184+0530 writing fruits.seasonal to 2018-01-07T18:06:41.185+0530 done dumping tutorialkart.stores (5 documents) 2018-01-07T18:06:41.185+0530 writing tutorialkart.myNewCollection to 2018-01-07T18:06:41.185+0530 done dumping school.totals (3 documents) 2018-01-07T18:06:41.185+0530 done dumping tutorialkart.webpages (5 documents) 2018-01-07T18:06:41.185+0530 done dumping fruits.seasonal (1 document) 2018-01-07T18:06:41.186+0530 done dumping tutorialkart.myNewCollection (0 documents) ~$ cd dump/ ~/dump$ ls admin fruits newdb school tutorialkart ~/dump$
Backup MongoDB Collection
In this example, we shall backup “webpages” collection of “tutorialkart” db.
~$ mongodump --collection webpages --db tutorialkart 2018-01-07T18:24:16.928+0530 writing tutorialkart.webpages to 2018-01-07T18:24:16.953+0530 done dumping tutorialkart.webpages (5 documents) ~$ cd dump ~/dump$ ls tutorialkart
Backup MongoDB Database
In this example, we shall backup “tutorialkart” db.
~$ mongodump --db tutorialkart 2018-01-07T18:25:43.148+0530 writing tutorialkart.people to 2018-01-07T18:25:43.149+0530 writing tutorialkart.customers to 2018-01-07T18:25:43.149+0530 writing tutorialkart.stores to 2018-01-07T18:25:43.149+0530 writing tutorialkart.webpages to 2018-01-07T18:25:43.149+0530 done dumping tutorialkart.people (8 documents) 2018-01-07T18:25:43.150+0530 writing tutorialkart.myNewCollection to 2018-01-07T18:25:43.150+0530 done dumping tutorialkart.customers (5 documents) 2018-01-07T18:25:43.150+0530 done dumping tutorialkart.stores (5 documents) 2018-01-07T18:25:43.150+0530 done dumping tutorialkart.myNewCollection (0 documents) 2018-01-07T18:25:43.150+0530 done dumping tutorialkart.webpages (5 documents) ~$ cd dump/ ~/dump$ ls tutorialkart ~/dump$ cd tutorialkart/ ~/dump/tutorialkart$ ls customers.bson myNewCollection.bson people.bson stores.bson webpages.bson customers.metadata.json myNewCollection.metadata.json people.metadata.json stores.metadata.json webpages.metadata.json
Backup MongoDB Databases linked to a specific MongoDB instance
In this example, we shall backup all databases linked to the MongoDB instance running at 127.0.0.1:27017
~$ mongodump --host 127.0.0.1 --port 27017 2018-01-07T18:06:41.181+0530 writing admin.system.version to 2018-01-07T18:06:41.182+0530 done dumping admin.system.version (1 document) 2018-01-07T18:06:41.182+0530 writing school.students to 2018-01-07T18:06:41.182+0530 writing tutorialkart.people to 2018-01-07T18:06:41.182+0530 writing tutorialkart.stores to 2018-01-07T18:06:41.183+0530 writing tutorialkart.customers to 2018-01-07T18:06:41.183+0530 done dumping school.students (9 documents) 2018-01-07T18:06:41.183+0530 writing tutorialkart.webpages to 2018-01-07T18:06:41.184+0530 done dumping tutorialkart.people (8 documents) 2018-01-07T18:06:41.184+0530 writing newdb.users to 2018-01-07T18:06:41.184+0530 done dumping tutorialkart.customers (5 documents) 2018-01-07T18:06:41.184+0530 writing school.totals to 2018-01-07T18:06:41.184+0530 done dumping newdb.users (4 documents) 2018-01-07T18:06:41.184+0530 writing fruits.seasonal to 2018-01-07T18:06:41.185+0530 done dumping tutorialkart.stores (5 documents) 2018-01-07T18:06:41.185+0530 writing tutorialkart.myNewCollection to 2018-01-07T18:06:41.185+0530 done dumping school.totals (3 documents) 2018-01-07T18:06:41.185+0530 done dumping tutorialkart.webpages (5 documents) 2018-01-07T18:06:41.185+0530 done dumping fruits.seasonal (1 document) 2018-01-07T18:06:41.186+0530 done dumping tutorialkart.myNewCollection (0 documents) ~$ cd dump/ ~/dump$ ls admin fruits newdb school tutorialkart ~/dump$
Backup to a particular directory
–out option could be used to create backup at a particular directory
~$ mongodump --out /home/tk/mongo_dump/ 2018-01-07T18:37:19.793+0530 writing admin.system.version to 2018-01-07T18:37:19.795+0530 done dumping admin.system.version (1 document) 2018-01-07T18:37:19.795+0530 writing school.students to 2018-01-07T18:37:19.795+0530 writing tutorialkart.people to 2018-01-07T18:37:19.795+0530 writing tutorialkart.stores to 2018-01-07T18:37:19.795+0530 writing tutorialkart.customers to 2018-01-07T18:37:19.796+0530 done dumping school.students (9 documents) 2018-01-07T18:37:19.796+0530 writing tutorialkart.webpages to 2018-01-07T18:37:19.797+0530 done dumping tutorialkart.people (8 documents) 2018-01-07T18:37:19.797+0530 writing newdb.users to 2018-01-07T18:37:19.797+0530 done dumping tutorialkart.stores (5 documents) 2018-01-07T18:37:19.797+0530 writing school.totals to 2018-01-07T18:37:19.798+0530 done dumping tutorialkart.customers (5 documents) 2018-01-07T18:37:19.798+0530 writing fruits.seasonal to 2018-01-07T18:37:19.798+0530 done dumping fruits.seasonal (1 document) 2018-01-07T18:37:19.799+0530 writing tutorialkart.myNewCollection to 2018-01-07T18:37:19.799+0530 done dumping school.totals (3 documents) 2018-01-07T18:37:19.799+0530 done dumping newdb.users (4 documents) 2018-01-07T18:37:19.799+0530 done dumping tutorialkart.myNewCollection (0 documents) 2018-01-07T18:37:19.800+0530 done dumping tutorialkart.webpages (5 documents) ~$ cd /home/tk/mongo_dump/ ~/mongo_dump$ ls admin fruits newdb school tutorialkart
Conclusion
In this MongoDB Tutorial, we have learnt to Backup MongoDB Databases and the control provided by mongodump utility for various levels in backup : Collection , Single Database, All Databases linked to a MongoDB Instance.