How To Back Up And Restore MongoDB: 8 Easy Steps

Abhinav Chola • Last Modified: August 29th, 2023

In this data-driven business world, data and information are precious commodities. Companies that can protect their data from sudden server crashes and ensure high data availability, enjoy a certain advantage over their peers. This is why businesses are constantly seeking ways to Backup their data securely and have fast Data Restoration options at their disposal. 

MongoDB is a popular database that companies from numerous verticals prefer for their data storage needs. Since businesses store, sensitive information using MongoDB, creating secure data backups is a major necessity. To make things easier, MongoDB provides the Mongodump and Mongorestore commands that can cater to your Data Backup and Restoration needs.

This article will introduce you to MongoDB and list down its major features. It will further explain the working and importance of the Mongodump command for your Data Backups. Moreover, this article will guide you through a detailed approach using which you can create secure Data Backup for your MongoDB data via the Mongodump command. Read along to learn the benefits of using Mongodump and how to restore data using the Mongorestore commands!

Table of Contents

What is MongoDB?

Mongodump: MongoDB Logo
Image Source

MongoDB is a robust Open-Source NoSQL Database that is designed using C++ Programming Language. MongoDB is popular because it allows you to store data without worrying about the Data Structure and number or type of fields while storing your records. This document-oriented database leverages JSON format and a Dynamic Schema to store data. Moreover, the MongoDB Documents have a format similar to JSON objects, and therefore you can experience a familiar environment while using MongoDB.

Using MongoDB, you can add new fields and delete existing ones seamlessly. You can also customize the record structure (MongoDB refers to it as Documents). Furthermore, the Hierarchical Relationships in MongoDB Objects allow you to Store Arrays and other complex Data Structures. Today, MongoDB finds applications in major tech firms including Facebook, eBay, Google, etc., to store vast data volumes.

Key Features of MongoDB

The following features provide MongoDB an edge over traditional Databases:

  • Schema-Less Database: Since MongoDB relies on a JSON-like storage format, it can store numerous documents, each having its own set of Fields, Content, and Size, in a single document. This way it frees you from the constraints of traditional Relational Databases which require that one document be comparable to others.
  • Index-based Document: MongoDB databases, utilize Primary and Secondary Indices to mark their fields. This way it gets easier for your to acquire data from the MongoDB pool.
  • Horizontal Scalability: MongoDB supports sharding which is the practice of distributing your data over multiple servers. It provides you a Shard Key using which you can easily partition huge data volumes into small chunks, which are dispersed uniformly among the Shards that reside over several Physical Servers.
  • Replication: MongoDB always maintains high availability of data. It generates several copies of the data and stores them on separate servers. This allows you to retrieve data safely even if one server fails.

To learn more about MongoDB, visit here.

Introduction to Mongodump for Backing Up Data

MongoDB uses a tool called Mongodump to provide you with faster data backups inside MongoDB databases. This tool contains commands which will enable you to backup your data at the level of queries, collections, or even an entire database. Moreover, MongoDB offers a complementary tool called Mongorestore that allows you to recover your data from the distributed backups into a new or existing MongoDb database.

The MongoDB Mongodump is a simple approach that empowers you to create data backups by filtering the specific data to suit your needs. However, Mongodump is efficient only for small deployments and its complexity overhead will increase significantly if applied to larger systems. This is because Mongodump command was not designed to be a scalable option. Since it is not an incremental technique, therefore you need to deal with a complete data dump for each snapshot point. This makes Mongodump a highly resource-intensive option. So, it is better to implement MongoDB Mongodump for backing up small-scale databases, and for large data collections, you can use other facilities provided by MongoDB.

Simplify your Data Analysis with Hevo’s No-code Data Pipeline

Hevo Data, a No-code Data Pipeline helps to Load Data from any data source such as Databases, SaaS applications, Cloud Storage, SDK,s, and Streaming Services and simplifies the ETL process. It supports 100+ data sources like MongoDB and loads the data onto the desired Data Warehouse, enriches the data, and transforms it into an analysis-ready form without writing a single line of code.

Its completely automated pipeline offers data to be delivered in real-time without any loss from source to destination. Its fault-tolerant and scalable architecture ensure that the data is handled in a secure, consistent manner with zero data loss and supports different forms of data. The solutions provided are consistent and work with different Business Intelligence (BI) tools as well.

Get Started with Hevo for Free

Check out why Hevo is the Best:

  • Secure: Hevo has a fault-tolerant architecture that ensures that the data is handled in a secure, consistent manner with zero data loss.
  • Schema Management: Hevo takes away the tedious task of schema management & automatically detects the schema of incoming data and maps it to the destination schema.
  • Minimal Learning: Hevo, with its simple and interactive UI, is extremely simple for new customers to work on and perform operations.
  • Hevo Is Built To Scale: As the number of sources and the volume of your data grows, Hevo scales horizontally, handling millions of records per minute with very little latency.
  • Incremental Data Load: Hevo allows the transfer of data that has been modified in real-time. This ensures efficient utilization of bandwidth on both ends.
  • Live Support: The Hevo team is available round the clock to extend exceptional support to its customers through chat, email, and support calls.
  • Live Monitoring: Hevo allows you to monitor the data flow and check where your data is at a particular point in time.
Sign up here for a 14-Day Free Trial!

Steps to Backup & Restore Data using Mongodump

The following steps will allow you to implement the Mongodump database command to generate secure Data Backups for your MongoDB instances:

Step 1: Create Direct Backups Using Mongodump

You can run the Mongodump command using the below syntax from the system command line as follows:

mongodump <options> <connection-string>

This structure also permits you to connect to a Mongo database with the –uri command along with a formatted string or flag such as –user, –db, and –password. However, you can’t use more than 1 flag in a single command.

Alternatively, you can use the default configurations and create a Mongo Backup via Mongodump command as follows: 

Mongodump

This statement operates on the assumption that your database resides in localhost (127.0.0.1), uses port 27017, and requires no access authentication. This backup process creates a dump folder directly in the current directory as shown in the below image.

Mongodump: Backup Initialization
Image Source

Step 2: Backup a Remote MongoDB Instance

As mentioned in Step 1, you can customize a host and a port number with the –uri connection string using the following syntax:

mongodump --uri="mongodb://<host URL/IP>:<Port>" [additional options]

Moreover, you can set up a server connection with the host option using the following command:

mongodump --host="<host URL/IP>:<Port>"  [additional options]

If you also wish to specify the port number, implement the following statement:

mongodump --host="<host URL/IP>" --port=<Port> [additional options]

The following code demonstrates the process of backing up a remote MongoDB instance:

mongodump --host="10.10.10.59" --port=27017

It will generate the following output:

Mongodump: Remote Instance
Image Source

Step 3: Backup a Secure MongoDB Instance

MongoDB’s Mongodump command allows you to implement access control mechanisms for your data backups. This will require you to provide a Username, Password, and specific Authentication options in the following syntax:

mongodump --authenticationDatabase=<Database> -u=<Username> -p=<Password> [additional options

For instance, you can use a Username & Password to connect to a remote MongoDB instance using the following command:

mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword"

It will generate the following output:

Mongodump: Secure Remote Instance
Image Source

Step 4: Select Databases & Collections

In Step 3 you learned how to back up a remote database using Mongodump. This step involves the –db and –collection options which indicate a database and a collection that requires backing up. You can run the –db option in a standalone manner, but to execute a collection, you have to specify a database. Moreover, you can remove a collection from the backup process, by using the –excludeCollection option.

To select a particular database use the following command:

mongodump  --db=<Backup Target - Database> [additional options]

If you wish to select a whole collection, execute the following:

mongodump  --db=<Backup Target - Database> --collection=<Collection Name> [additional options]

To exclude a particular collection, run the following command:

mongodump  --db=<Backup Target - Database> --excludeCollection=<Collection Name> [additional options]

Step 5: Change the Backup Directory

You can leverage the –out option to specify the backup folder’s location in the following way:

mongodump --out=<Directory Location> [additional options]

Now, if you wish to switch the backup directory with the “dbbackup” folder, run:

mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --out=dbbackup

It will provide you with the following output:

Mongodump: Authentication
Image Source

Step 6: Create an Archive File

The Mongodump utility provides you with a method to create an archive file. You can use the –archive option can for specifying the file to be archived. In case no specification is given, the output will be in the standard form (stdout).

Keep in mind that you can’t use the –archive option along with the –out option.

mongodump --archive=<file> [additional options]

You can easily define any archive file using the following command:

mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --archive=db.archive

The output on your screen will be similar to the below image.

Mongodump: Archive File
Image Source

Step 7: Compress the MongoDB Backup

Now, since you know how to backup data using Mongodump, it’s time to understand the process of compressing these files. You can use the –gzip option to compress the JSON and BSON files individually using the following command:

mongodump --gzip [additional options]

For instance, the below statement will compress a complete Mongo database:

mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --gzip

The output on your screen will be as follows:

Mongodump: Compression of Data Backup
Image Source

Step 8: Restore Database

Apart from excellent backups, MongoDB also provides you the facility to restore your data. The Mongorestore command will seamlessly load data from the Mongodumb backups and restore your Mongo database. The mongorestore command, however, can not overwrite documents present in the database if the id for the document already exists. Otherwise, Mongorestore will generate a new database or will add data to the existing one.

The Mongorestore command requires you to mention the path to your dump directory and the syntax is s follows: 

mongorestore dump/

Moreover, in the Mongostore command:

  • You must specify the –uri flag or provide every standard connection flag.
  • You can directly use the most preferred –nsInclude option to restore different collections. It allows users to choose a namespace when restoring the collections for a database.

For instance, in the following command, you can isolate and import the db1 database to restore it in your local environment:

mongorestore --db=redbase --nsInclude="db1.*" dump/

This will restore all the collections of db1 that were earlier dumped. However, it won’t touch the data stored in db2 even both dn1 and db2 have their data stored in the same dump directory.

To learn more about the use of Mongorestore, visit our blog.

Benefits of MongoDump

Using the Mongodump command to create Data Backups has the following benefits:

  • The Mongodump command is an efficient backup utility of MongoDB and allows you to create data backups of all sizes and varieties. For instance, it lets you back up a query, collections, or even an entire database. 
  • The Mongodump command also generates a periodic snapshot of your data if the oplog is included. This straightforward method provides backups that you can filter to match your needs. This way, MongoDB addresses both the Time and Point Recovery objects. 
  • The Mongodump command works well for small-scale database backups.  Moreover, it’s oplog.bson file creates a backup created which will allow you to replayed the oplog data during the restoration process.

Conclusion

This article introduced you to MongoDB along with its key features. It also explained the Mongodump command and how it operates to create data backups. It further elaborated on an 8-step method using which you can easily create your MongoDB backup Database. Furthermore, the blog listed down the benefits of implementing the Mongodump data backup process.

Visit our Website to Explore Hevo

MongoDB is a great tool for storing your business data. However, at times, you need to transfer this data to a Data Warehouse for further analysis. Building an in-house solution for this process could be an expensive and time-consuming task Hevo Data, on the other hand, offers a No-code Data Pipeline that can automate your data transfer process, hence allowing you to focus on other aspects of your business like Analytics, Customer Management, etc. This platform allows you to transfer data from 100+ sources like MongoDB to Cloud-based Data Warehouses like Snowflake, Google BigQuery, Amazon Redshift, etc. It will provide you with a hassle-free experience and make your work life much easier.

Want to take Hevo for a spin? Sign Up for a 14-day free trial and experience the feature-rich Hevo suite first hand. 

Share your views on MongoDB’s backup using the Mongodump command in the comments section!

No Code Data Pipeline For Your Data Warehouse