我正在处理 MongoDB (2.4.10) 分片集群,到目前为止只有 1 个副本集。我在 mongos 上运行了 db.repairDatabase()。
这样,我可以回收主节点上的可用空间。但不能回收辅助节点上的可用空间。我是否必须在副本集的每个成员上运行它?
谢谢,
格雷格。
答案1
是的。您需要停止辅助 mongo 进程,注释掉副本配置参数(replSet、keyFile 等),启动 mongo 进程,然后登录并执行修复。修复完成后,停止 mongod 进程,将配置改回原始设置并启动 mongod。这假设您拥有三成员部署且投票正确等。
另一个选择是简单地重新同步辅助服务器(等待你的 oplog 足够长):
http://docs.mongodb.org/manual/tutorial/resync-replica-set-member/