Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to reclaiming deleted space without `db.repairDatabase()`?

Tags:

mongodb

I want to shrink data files size by reclaiming deleted space, but I can't run db.repairDatabase(), because free disk space is not enough.

like image 549
user805627 Avatar asked Jul 23 '12 17:07

user805627


1 Answers

Update: With WiredTiger, compact does free space.

The original answer to this question is here: Reducing MongoDB database file size

There really is nothing outside of repair that will reclaim space. The compact should allow you to go much longer on the existing space. Otherwise, you will have to migrate to a bigger drive.

One way to do this is to use an off-line secondary from your Replica Set. This should give you a whole maintenance window to migrate, repair, move back and bring back up.

If you are not running a Replica Set, it's time to look at doing just that.

like image 65
Gates VP Avatar answered Nov 04 '22 10:11

Gates VP