Quick Tip: Changing MongoDB's Storage Directory
I recently had to move a MongoDB installation (well, at least the actual data) to a larger hard drive with as little downtime as possible.
According to the mighty Stack Overflow you can either just create a symlink or actually move the data and adjust the configuration. Since I believe that explicit configurations (i.e. not having to remember that a symlink is in place) are less painful in the long-run, I opted for the second option.
For a simple setup without Sharding this works perfectly fine (Ubuntu 16.04 Server):
service mongod stop
mkdir /mnt/mongodb/data
chown mongodb:mongodb /mnt/mongodb/data/
vim /etc/mongod.conf #change dbPath to /mnt/mongodb/data/mongodb
mv /var/lib/mongdb/ /mnt/mongodb/data/
service mongod start
Make sure to set the permissions correctly and stop the server before moving the data. Moving/Copying the data while the server is running will almost certainly result in unwanted behaviour ;). You should also think about relocating the logfiles by editing mongod.conf
.
Ideally, the downtime can be reduced to the amount of time the actual moving of the data takes.
Thank you for visiting!
I hope, you are enjoying the article! I'd love to get in touch! 😀
Follow me on LinkedIn