to岳彩波:三个节点的集群,一般默认是指副本集的集群。与shard无关
to题主:三个节点的集群,2个节点挂了数据文件损坏。首先你可以以单节点模式启动那个正常的节点,来恢复业务。但是这个方法不太好。
最好的方法是这样(假设另外两个节点数据文件损坏),先在存活节点上加一个仲裁节点(就在本机即可,不保存数据),然后把两个坏的节点踢掉,保证不破坏副本集的情况下,让业务可用。然后再在坏的节点上,删除dbpath目录,重新加入集群,会自动初始化并同步数据的。当3台都恢复后,再踢出仲裁节点即可。
首先要明白mongodb如果你是一个三节点集群,那你应该明白这几个节点都是干什么的, MongoDB集群包括一定数量的mongod(分片存储数据)、mongos(路由处理)、config server(配置节点)、clients(客户端)、arbiter(仲裁节点:为了选举某个分片存储数据节点那台为主节点)。看一下mongodb集群的实现方式,逻辑层次是不可能恢复的。
收起