mongodb碎片复制成员:找不到要从中同步的成员

mongodb碎片复制成员:找不到要从中同步的成员,mongodb,deployment,replication,sharding,replicaset,Mongodb,Deployment,Replication,Sharding,Replicaset,我正在尝试设置mongodb,其中包含具有副本集的碎片,并且我已启用--rest,以便我可以在浏览器上查看我的碎片。但是,当我查看“replSetGetStatus”时,它显示“找不到要从中同步的成员” 在主复制上执行rs.status()操作时复制副本成员的列表 { "set" : "S1repset", "date" : ISODate("2015-09-29T16:19:22.020Z"), "myState" : 1, "members" : [

我正在尝试设置mongodb,其中包含具有副本集的碎片,并且我已启用--rest,以便我可以在浏览器上查看我的碎片。但是,当我查看“replSetGetStatus”时,它显示“找不到要从中同步的成员”

在主复制上执行rs.status()操作时复制副本成员的列表

{
    "set" : "S1repset",
    "date" : ISODate("2015-09-29T16:19:22.020Z"),
    "myState" : 1,
    "members" : [
            {
                    "_id" : 0,
                    "name" : "10.10.30.10:10000",
                    "health" : 1,
                    "state" : 1,
                    "stateStr" : "PRIMARY",
                    "uptime" : 18374,
                    "optime" : Timestamp(1443538866, 970),
                    "optimeDate" : ISODate("2015-09-29T15:01:06Z"),
                    "electionTime" : Timestamp(1443540958, 1),
                    "electionDate" : ISODate("2015-09-29T15:35:58Z"),
                    "configVersion" : 1,
                    "self" : true
            },
            {
                    "_id" : 1,
                    "name" : "10.10.40.10:10000",
                    "health" : 1,
                    "state" : 2,
                    "stateStr" : "SECONDARY",
                    "uptime" : 2603,
                    "optime" : Timestamp(1443538866, 970),
                    "optimeDate" : ISODate("2015-09-29T15:01:06Z"),
                    "lastHeartbeat" : ISODate("2015-09-29T16:19:20.174Z"),
                    "lastHeartbeatRecv" : ISODate("2015-09-29T16:19:21.176Z"), 


"pingMs" : 1,
                    "configVersion" : 1
            },
            {
                    "_id" : 2,
                    "name" : "10.10.50.10:10000",
                    "health" : 1,
                    "state" : 2,
                    "stateStr" : "SECONDARY",
                    "uptime" : 2451,
                    "optime" : Timestamp(1443538866, 970),
                    "optimeDate" : ISODate("2015-09-29T15:01:06Z"),
                    "lastHeartbeat" : ISODate("2015-09-29T16:19:21.826Z"),
                    "lastHeartbeatRecv" : ISODate("2015-09-29T16:19:20.278Z"),

"pingMs" : 1,
                    "lastHeartbeatMessage" : "could not find member to sync from",
                    "configVersion" : 1
            },
            {
                    "_id" : 3,
                    "name" : "10.10.60.10:10000",
                    "health" : 1,
                    "state" : 2,
                    "stateStr" : "SECONDARY",
                    "uptime" : 18155,
                    "optime" : Timestamp(1443538866, 970),
                    "optimeDate" : ISODate("2015-09-29T15:01:06Z"),
                    "lastHeartbeat" : ISODate("2015-09-29T16:19:20.183Z"),
                    "lastHeartbeatRecv" : ISODate("2015-09-29T16:19:20.687Z" ),

     "pingMs" : 1,
                    "configVersion" : 1
            }
    ],
    "ok" : 1 }
使用的MongoDB版本是v3.0.6,运行在docker container Digital ocean中,并使用weave使容器能够在不同的液滴中通信。 我们的装置有4个液滴

  • 每个运行一个路由器(共4个)
  • 三个配置服务器
  • 4个包含4个复制副本成员的碎片
  • 在一个液滴中,另一个液滴包含1个主液滴和2个辅助液滴
所以我的问题是如何解决这个问题,或者这在MongoDB v3.0.6上正常吗
这种设置适合在生产环境中使用吗

提前感谢,,
Ronald

仅在次要和正在恢复的成员上的
rs.status()
的输出上显示
syncingTo
字段,并保存从中同步此实例的成员的主机名。对于ex-
tail-f/var/log/mongodb/mongod.log,您还可以从
logs
中看到它


您的分片集群非常丰富,但我建议每个分片有两个副本就足够了,因此对于一个分片来说,
复制因子RF=3
。它降低了成本。您仍然可以在两个
次要节点中的一个节点上运行
mongos
进行剪切。

感谢Hitesh的建议,我想我已经找到了为什么我会遇到“找不到要同步的成员”。例如,我在一个碎片中有3个副本成员,我正在其中一个副本成员上的浏览器上查看副本状态,此时会显示消息“找不到要从中同步的成员”,但当我不在浏览器上时,消息会熄灭。你的意思是说RF=3是1个主要部分和2个次要部分?