MongoDB 分片状态recovering

Posted Next-one

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 分片状态recovering相关的知识,希望对你有一定的参考价值。

       mongodb集群分片的数据查询的时候变慢,db.collection.find()不设置条件的查询几乎查不出来,通过检查集群中各分片服务器的状态,发现一台机器状态为recoving。通过 db.printReplicationInfo()命令查看该节点复制数据的情况,发现与其他节点不同步。

        解决办法:1、停掉该节点mongodb服务(arbiter节点的mongodb服务也停掉),删除该节点数据存储的目录下的数据,在重新开启mongodb服务(先开启异常节点mongodb服务,再开启arbiter服务)异常节点将重新复制数据到自身节点。状态将由原来的recovering变成startupp,通过rs.status()命令可以看到uptime在不断更新 数据带不断被复制。

待数据同步完成,startup2状态自动别更为secondary。

 

        解决办法2:删除该节点下的数据,并从其他节点复制完整的数据到该节点,需将local一并复制。。。。

 

以上是关于MongoDB 分片状态recovering的主要内容,如果未能解决你的问题,请参考以下文章

ES集群 分片UNASSIGNED

如何在 mongodb shell 中查看分片键?

MongoDB——从集群中删除分片,根据官网教程实际操作记录

MongoDB 认证考试真题知识点

实战MongoDB 分片原理概述 + 部署 MongoDB 分片群集 +源码包

有状态集最佳实践的动态扩展