Mongodb中回收remove的磁盘空间

本文详细介绍了在MongoDB中管理集群成员的过程,包括移除从库、关闭进程、清理数据路径、重新启动从库、同步数据以及验证从库状态的完整步骤。通过这些操作,可以有效地调整集群配置并确保数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- 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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值