mongodb shard复制成员:找不到要从

时间:2015-09-29 16:37:29

标签: mongodb deployment replication sharding replicaset

我正在尝试设置具有副本集的分片的mongodb并且我启用了 - 所以我可以在我的浏览器上查看我的分片,但是当我查看" replSetGetStatus"它显示"找不到会员同步来自" image of my replica members on my browser

我在主复制上执行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容器Digital ocean中运行,并使用weave使容器能够以不同的液滴进行通信。 我们的设置有4个液滴

  • 每个运行一个路由器(共4个)
  • 三个配置服务器
  • 包含4个副本成员的4个分片
  • 在一个液滴中包含1个主液滴和次级液滴

所以我的问题是如何解决这个问题,还是在MongoDB v3.0.6上这是正常的?
这种设置是否适合在生产环境中使用?

提前致谢, 罗纳德

1 个答案:

答案 0 :(得分:0)

syncingTo字段仅出现在辅助和恢复成员的rs.status()输出上,并保存此实例正在同步的成员的主机名。您也可以从logs查看前tail -f /var/log/mongodb/mongod.log

你的分片群集非常丰富,但我建议每个分片的两个副本就足够了Replication Factor RF=3一个分片。它降低了成本。您仍然可以在两个mongos节点之一上运行secondary