关于MongoDB集合空间释放的问题

fwbbest 2014-10-15 03:40:17
目前背景是三台mongodb,采用副本集的架构,读写分离
问题在清理集合部分数据后,空间并没有释放,如何解决?
不能使用repair操作,因为db一直在工作,不能停掉读写,compact操作也会对整个DB进行加锁,请教给位大神还有其他的解决方法吗
...全文
1782 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloMyidea 2015-12-22
  • 打赏
  • 举报
回复
请问,用程序控制的方法解决了吗
fwbbest 2014-10-17
  • 打赏
  • 举报
回复
谢谢各位的解答,eshu提供的方法是很好的解决方案,不过后台的不停机的解决方案看来暂时没有找到,我们开发人员没有服务器的权限,启停需要运维来做,不过可以提供给运维这个解决方案
  • 打赏
  • 举报
回复
引用 6 楼 fwbbest 的回复:
谢谢各位的解答,eshu提供的方法是很好的解决方案,不过后台的不停机的解决方案看来暂时没有找到,我们开发人员没有服务器的权限,启停需要运维来做,不过可以提供给运维这个解决方案
excuse me, could you please let me know the purpose of this operation? Do you try to find a way to free the hard disk space that mongodb was taking by removing the actual data?
  • 打赏
  • 举报
回复
引用 1 楼 eshujiushiwo 的回复:
HI 楼主~ 是群里那位兄弟吧? 可以考虑 从repl set 中剔除 的方式来一台一台做啦。
when he said "空间并没有释放", that refers to the disk space or memory?
eshujiushiwo 2014-10-16
  • 打赏
  • 举报
回复
引用 3 楼 micropentium6 的回复:
[quote=引用 1 楼 eshujiushiwo 的回复:] HI 楼主~ 是群里那位兄弟吧? 可以考虑 从repl set 中剔除 的方式来一台一台做啦。
when he said "空间并没有释放", that refers to the disk space or memory?[/quote] 他所指的是硬盘。 例如:test数据库的数据文件,test.1 有2G 那即使我们删除了test数据库中的test1表(1.5G大小),test.1这个数据文件不会变动还是2G,只不过test数据库之后的数据写入会继续在这个数据文件中进行。
  • 打赏
  • 举报
回复
引用 4 楼 eshujiushiwo 的回复:
[quote=引用 3 楼 micropentium6 的回复:] [quote=引用 1 楼 eshujiushiwo 的回复:] HI 楼主~ 是群里那位兄弟吧? 可以考虑 从repl set 中剔除 的方式来一台一台做啦。
when he said "空间并没有释放", that refers to the disk space or memory?[/quote] 他所指的是硬盘。 例如:test数据库的数据文件,test.1 有2G 那即使我们删除了test数据库中的test1表(1.5G大小),test.1这个数据文件不会变动还是2G,只不过test数据库之后的数据写入会继续在这个数据文件中进行。[/quote] That is what I thought, even u remove the collection, the disk space will not be released coz that is the space allocation strategy of mongo, isn't it? It is the trade of between performance and resource. You will definitely see a larger profiles for mongo on ram and disk space. So, mongo is a monster in that context...
yihong2017 2014-10-15
  • 打赏
  • 举报
回复
这个容易,先把从停掉,删掉数据,从新启动,数据就会自动从主同步。把从做完后,同样的方式做主。
eshujiushiwo 2014-10-15
  • 打赏
  • 举报
回复
HI 楼主~ 是群里那位兄弟吧? 可以考虑 从repl set 中剔除 的方式来一台一台做啦。

1,798

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧