Are you looking for a way to copy MongoDB database files to another server?
MongoDB databases support huge volumes of data and support.
It comes handy in apps that scale up as per usage.
Many times we get requests to copy MongoDB databases as part of our Server Management Services.
Today, in this write up, we’ll see how our Database Engineers copy MongoDB files to production servers.
When do we need to copy MongoDB files?
Let’s first see the typical scenarios in which we need to copy the MongoDB database.
MongoDB databases are popular among developers that create scalable apps. These developers build them on a test server. Later after testing, they copy them to the live server.
Recently, one of our customers came with the following request.
I would like you to install MongoDB on my AWS EC2 production server and copy the databases.
Please adjust the mongo configuration so that the mongo database is on this EBS inside /dev/sdb.
How we copy MongoDB database files
The copying of the database involves multiple steps. It needs creating a backup, copying it to the destination server, and restoring it.
We’ll now look at how our Support Engineers copied the MongoDB database to the customer’s new server.
1. Stop MongoDB on the source server
It’s always a good idea to shut down any connections to mongod service before starting database backup. This avoids any data loss.
Therefore, as the first step, we stop the MongoDB on the server. For this we use the command:
service mongod stop
2. Create a MongoDB database backup
Now it’s the time to create a database backup. Here, we use the mongodump command.
The format is
mongodump --host <source host:port> --ssl --username <username> --password <password> --authenticationDatabase admin --db <sourceDbName>
For instance, to take the dump of the database with name exampledb, the command will be
mongodump -h myservername:27017 --ssl -u user1 -p 123123 --authenticationDatabase admin -d exampledb
3. Copy MongoDB database files to the destination server
Further, we copy the files to the destination server. We can make use of the scp or rsync to copy them.
The customer had both production and staging servers as AWS instances. So we used scp to transfer the files.
To make scp work, we had to adjust the security group settings from the AWS console. In normal servers, this requires firewall changes so that the connection between the servers work.
4. Restore MongoDB database
Once the backup file is on the destination server, it’s time to restore the MongoDB database. For this, we use the mongorestore command.
The syntax will be
mongorestore --host <target host:port> --ssl --username <username> --password <password> --authenticationDatabase admin --db <targetDbName> --collection <collection-name> <dump folder/file>
To restore the exampledb database, we used
mongorestore --host=mynewserver --port=27017 --username=user --authenticationDatabase=admin --db exampledb /opt/backup/mongodump-exampledb
That completed the restore without any errors.
5. Access to users on the new server
Finally, in certain cases, we may have to give access to users on the new servers.
The customer wanted to adjust permissions on Mongo to allow connection from his host IP address.
MongoDB uses port number 27017 for all connections by default. So we opened up that port for the specific IP. We did this from the network settings of the AWS console. We opened up inbound and outbound traffic on port 27017 for the IP “17x.yy.zz.22”. Here, we used the custom TCP as the protocol.
[Need help to copy MongoDB database files to a new server? We are available 24×7 to help you.]
Conclusion
To sum up, mongodump and mongorestore provide a quick way to copy MongoDB database files to another server.
Today, we saw how our Support Engineers copied the MongoDB database for our customers.
0 Comments