我在MongoDB和空间使用方面遇到一些麻烦。 特别是我曾经有过大量的6亿条logging,总共有110多GB的磁盘。 最近我决定放弃它,因为数据已经过时了,所以我通过rockmongo的Web界面删除了这个集合。 因此,rockmongo不再显示我的集合,但是我的磁盘使用率根本没有改变。
有没有清理操作,我不知道,必须运行,以便同步数据库与磁盘上的数据库文件?
我试图执行“修复”,但系统抱怨磁盘上没有足够的空间…这是因为它全部由MongoDB使用。
与大多数数据库系统一样,当您删除数据时,数据库文件不会收缩,只会删除/标记为已删除的数据,并重新使用该空间。
您将需要运行db.repairDatabase()
来压缩空间,如此处所述
虽然上面的mongodump / drop / mongorestore方法从技术angular度来说可以很好地工作,但是这样做会要求您在数据库脱机的同时将数据库置于脱机状态,这将是一个影响服务的事件。
如果您希望在没有停机的情况下执行此操作,并且如果您正在使用MongoDB副本集[1],则可以这样做:
然后对副本集中的每个其他成员重复上述步骤。
[1] https://docs.mongodb.org/manual/tutorial/deploy-replica-set )