Mongodb中回收remove的磁盘空间

-- purge disk space
1 首先使用rs.remove(“ip:port”)移除一个从库,使其下线。
http://docs.mongodb.org/manual/tutorial/remove-replica-set-member/
rs.remove("127.0.0.1:37020");

2 关闭下线的mongod进程,kill -2 pid
kill the pid

3 删除其datapath下的所有文件
rm -rf all datafiles

4 重新启动该mongod
start the mongodb server

5 在主库上使用rs.add(“ip:port”)重新加回该从库
rs.add("127.0.0.1:37020");
此从库将会自动从主库或者其他从库同步数据,相当于导数据,不会复制已经删除的数据,而且将进行空间压缩,此过程将会显示recovery或startup状态,不提供服务,待同步完成之后,角色会自动变为secondary。

6 使用rs.status()对比optime,确保从库没有延迟。
rs.status();

7 同样的,将其它的secondary重新整理一遍

8 在primary上面执行, 主库降级 rs.stepDown();

rs.remove("127.0.0.1:37017");

config = {_id: 'sso-resti', members: [
{_id: 0, host: '127.0.0.1:37017'},
{_id: 1, host: '127.0.0.1:37018'},
{_id: 2, host: '127.0.0.1:37019'},
{_id: 3, host: '127.0.0.1:37020'}
]};
rs.initiate(config);
rs.status();

rs.add("127.0.0.1:37017");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值