当一个分片被永久损坏时,如何拯救分片的MongoDB群集?
我有一个包含48个分片的MongoDB群集。每个分片都是一个具有一个replicaset的主分片。由于错误的计划(tm),其中一个框用完文件空间而死亡。另一个已经关闭,然后也没空了。由于恶劣的情况(当时正在进行的紧凑()或者修复(),整个碎片都已损坏。
我停止了守护进程,试图修复,但它不会成功。
所以,问题是,我如何接受丢失一个碎片但保留其他好的碎片?有48个分片,其中一个只占我数据的2%。我没有丢失那些数据,但我必须达到正常的健康状态。
我该怎么办?
答案 0 :(得分:1)
回答已废除,重新回复:
请注意,当您重新创建群集时,您应该使用一定/大量的块预先填充它,以便splitchunk进程不会永远占用。
如果你最终得到了不平衡的碎片(很多碎片在一个而不是另一个碎片),请暂停,关闭平衡器的油门,使其快速实现,一旦它再次平衡,重新开始重新加载。