如何释放空间?
1. 先用 remove 命令删除数据
2. repair。需要停机,即便你不停机的话 mongodb 自己也会锁住直到 repair 完成。注意要有足够的磁盘空间,需要额外一倍的空间,如果mongodb 占用了100G,那么 repair 时还需要额外的100G 空间。可以追加磁盘,然后将目标目录指向新加的磁盘。
mongod --dbpath /data/db --repair --repairpath /data/db0
如果当前磁盘足够的话可直接在 mongo 命令行中运行:
db.repairDatabase()
只要磁盘空间够基本上没什么问题。
repair 的速度嘛,我33G整理到10G 用了5分钟。
经测试,释放出来的空间与用 copyDatabase 方法释放的空间一样。