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

fwbbest 2014-10-15 03:40:17
目前背景是三台mongodb,采用副本集的架构,读写分离
问题在清理集合部分数据后,空间并没有释放,如何解决?
不能使用repair操作,因为db一直在工作,不能停掉读写,compact操作也会对整个DB进行加锁,请教给位大神还有其他的解决方法吗
...全文
1724 8 打赏 收藏 转发到动态 举报
写回复
用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 中剔除 的方式来一台一台做啦。
7.4 7.4 文档 文档型数据库 型数据库 1 数据库原理及应用 电子科技大学-张凤荔 数据库系统原理与开发 MongoDB数据库的组成 MongoDB的集群架构 【 【本节学习目标 本节学习目标】 】 2 数据库原理及应用 电子科技大学-张凤荔 数据库系统原理与开发 一、文档数据库的组成 面向集合且模式自由的文档型数据库。面向集合--数据被分组为集 合(文档);数据模式自由;存储的数据是键值对的集合,键是字符 串,值是任意类型,包括数组和文档。 文档是MongoDB中数据的基本单元,集合可以被看作没有模式的表, MongoDB每个实例都可容纳多个独立数据库,每个数据库都有自己 的集合和权限(数据库)。 文档 (Document)--- 文档组集合 :Collection -- 多个集合 : 数据库 (database)。一个实例支持多个数据库(database) 3 数据库原理及应用 电子科技大学-张凤荔 数据库系统原理与开发 1 数据库对应的文件信息 默认数据目录是/daba/db,存储所有的数据文件,每个数据库都包 含一个.ns文件和一些数据文件,例如test数据库,数据库的文件 就会由test.ns、test.0、test.1、test.2等组成。 预分配空间的机制,用0进行填充。 每新分配一次,它的大小都会 是上一个数据文件大小的2倍,每个数据文件最大2G。 数据库的每张表都对应一个命名空间,每个索引也有对应的命名空 间,这些命名空间的元数据集中在*.ns文件中。 4 数据库原理及应用 电子科技大学-张凤荔 数据库系统原理与开发 例子– 数据库的相关文件 test数据库包含3个文件用于存储表和索引数据,test.2预分配的 空文件,test.0和test.1分到相应的盘区对应不同的名字空间。 每个命名空间可以包含多个不同的盘区,不是连续的,命名空间对 应的盘区随着分配的次数不断增长的。 不用释放回收空闲的磁盘 空间mongodb的数据将会保存在底层文件系统中,dbpath设定为 "/data/db"目录,创建一个database为"test",collection为 "sample",然后在此collection中插入数条documents。我们查 看dbpath下生成的文件列表: 5 数据库原理及应用 电子科技大学-张凤荔 数据库系统原理与开发 例子– 数据库的相关文件 test已经有6个数据文件(data files),每个文件以 "database"的名字 + 序列数字组成,序列号从0开始,逐个递增, 数据文件从16M开始,每次扩张一倍(16M、32M、64M、128M...) > ls -lh -rw------- 1 mongo mongo 16M 11 6 17:24 test.0 -rw------- 1 mongo mongo 32M 11 6 17:24 test.1 -rw------- 1 mongo mongo 64M 11 6 17:24 test.2 -rw------- 1 mongo mongo 128M 11 6 17:24 test.3 -rw------- 1 mongo mongo 256M 11 6 17:24 test.4 -rw------- 1 mongo mongo 512M 11 6 17:24 test.5 -rw------- 1 mongo mongo 512M 11 6 17:24 test.6 -rw------- 1 mongo mongo 16M 11 6 17:24 test.ns 6 数据库原理及应用 电子科技大学-张凤荔 数据库系统原理与开发 数据库存储--collection 数据库中所有的collections以及索引信息分散存储在多个数据文 件中,数据分块的单位为extent(范围,区域),即一个data file中有多个extents组成,extent中可以保存collection数据或 者indexes数据,一个extent只能保存同一个collection数据,不 同的collections数据分布在不同的extents中,indexes数据也保 存在各自的extents中; 在每个database的namespace文件中,每个collection只保存了第 一个extent的位置信息,每个extent都维护者一个链表关系。 7 数据库原理及应用 电子科技大学-张凤荔 数据库系统原理与开发 2 Namespace文件 对于namespace文件,比如"test.ns"文件,默认大小为16M,此 文件中主要用于保存"collection"、index的命名信息, 可保存collection的"属性"信息、每个索引的属性类型等 通

1,747

社区成员

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

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