How to Backup and Restore MongoDB Database

Channel: Linux
Abstract: –db – database name to backup –out – database backup location. This will create folder with database name. You can specify hostYou can specify host

mongodump is a utility provided by MongoDB for creating backups of databases. This is an very useful utility and can be consider for taking backups for live servers databases very effectively. For database restore use mongorestore command. You can read our online mongodb tutorials to create database, drop database etc.

1. Backup MongoDB Database – mongodump

There are various options to take backups of mongodb database. Use mongodump command to take all databases backup or a single database backup of backup of single collection.

Backup Single Database

Use this command to take backup of a single database (named mydb) only. Backup will be created in /backup/mongo/ directory.

mongodump --db mydb --out /backup/mongo/ 

–db – database name to backup
–out – database backup location. This will create folder with database name.

You can specify host, port, username and password for remote databases connections backups like below.

mongodump --host 10.0.1.7 --port 27017 --username admin --password somepassword --db mydb --out /backup/mongo/ 
Backup All Databases

To backup all databases you just need to run following command. Here /data/db/ is location of your mongodb data directory and /backup/mongo is location of backup directory.

mongodump --out /backup/mongo/ 

You can specify host, port for remote databases.

Backup Single Collection

This command will take backup of single collection from a database. Backup files will be created in /backup/mongo/mydb/ directory.

mongodump --collection mycollection --db mydb --out /backup/mongo/ 
2. Restore MongoDB Database – mongorestore

mongorestore is command line tool for restoring mongodb database backup. Here /data/db/ is location of your mongodb data directory and /backup/mongo is location of backup directory.

mongorestore --db mydb --drop /backup/mongo/mydb 

–drop – Will remove database if already exist.

You can simply move backup files to remote server and run the same command there to restore backups.

3. MongoDB Backup Shell Script

You can easily schedule the below script in scheduler to backup databases regularly. Create a file as following

vi /backup/mongo-backup.sh 

Add below content to file. Update database hostname, database name , username and password accordingly.

#!/bin/sh TODAY=`date +%d%b%Y` BACKUP_DIR=/backup/mongo mkdir -p ${BACKUP_DIR}/${TODAY} mongodump -h <DATABASE_HOST> -d <DATABASE_NAME> -u <USERNAME> -p <PASSWRD> --out ${BACKUP_DIR}/${TODAY}/12345678#!/bin/sh TODAY=`date +%d%b%Y`BACKUP_DIR=/backup/mongo mkdir -p ${BACKUP_DIR}/${TODAY} mongodump -h <DATABASE_HOST> -d <DATABASE_NAME> -u <USERNAME> -p <PASSWRD> --out ${BACKUP_DIR}/${TODAY}/

Now configure this in crontab to run daily.

0 2 * * * /backup/mongo-backup.sh10 2 * * * /backup/mongo-backup.sh

Ref From: tecadmin

Related articles