【问题标题】:mongodb shard replication member: could not find member to sync frommongodb 分片复制成员:找不到要同步的成员
【发布时间】:2015-12-27 06:03:10
【问题描述】:

我正在尝试设置具有副本集的分片的 mongodb,并且我启用了 --rest 以便我可以在浏览器上查看我的分片但是,当我查看“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使容器能够在不同的droplets中进行通信。 我们的设置有 4 个液滴

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

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

提前致谢, 罗纳德

【问题讨论】:

    标签: mongodb deployment replication sharding replicaset


    【解决方案1】:

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

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

    【讨论】:

    • 感谢 Hitesh 的建议,我想我设法弄清楚为什么我得到“找不到要同步的成员”。例如,我在一个分片中有 3 个副本成员,并且我在浏览器上查看其中一个副本成员的副本状态时,会出现消息“找不到要同步的成员”,但当我不在浏览器上时会关闭。你的意思是 RF=3 是 1 个主要和 2 个次要的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 2023-04-08
    • 2012-09-23
    • 2019-09-03
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多