【问题标题】:MongoDB replica heartbeat request time exceededMongoDB 副本心跳请求超时
【发布时间】:2016-11-23 22:16:01
【问题描述】:

我有副本集(托管在亚马逊上),其中有:

  • 主要
  • 次要
  • 仲裁者

它们都是 3.2.6 版本,这个副本正在我的分片集群中制作一个分片(如果这很重要,尽管我认为它不重要)。

当我在主服务器上键入 rs.status() 时,它说无法到达辅助服务器(仲裁器也是如此):

        {
        "_id" : 1,
        "name" : "secondary-ip:27017",
        "health" : 0,
        "state" : 8,
        "stateStr" : "(not reachable/healthy)",
        "uptime" : 0,
        "optime" : {
            "ts" : Timestamp(0, 0),
            "t" : NumberLong(-1)
        },
        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
        "lastHeartbeat" : ISODate("2016-07-20T15:40:50.479Z"),
        "lastHeartbeatRecv" : ISODate("2016-07-20T15:40:51.793Z"),
        "pingMs" : NumberLong(0),
        "lastHeartbeatMessage" : "Couldn't get a connection within the time limit",
        "configVersion" : -1
    }

(顺便看看 optimeDate O.o)

我的日志中的错误是:

[ReplicationExecutor] Error in heartbeat request to secondary-ip:27017; ExceededTimeLimit: Couldn't get a connection within the time limit

奇怪的是,当我继续输入 rs.status() 时,一切看起来都正常。此外,我可以从我的主实例(使用mongo --host secondary)连接到辅助实例,所以我想这不是网络问题。昨天一切正常。

TL;DR 我的主节点看不到辅助节点,仲裁器看不到辅助节点,而我的辅助节点看到主节点,就在前一天一切正常,我可以从主实例手动连接到辅助节点。

有人知道会出什么问题吗?

Tnx, 伊万

【问题讨论】:

  • 解决办法是什么?我的 optimeDate 是一样的。
  • @Ivan - 如果解决了,请分享解决方案。

标签: mongodb replication sharding


【解决方案1】:

似乎辅助 optimeDate 对错误负责,了解此错误 optimeDate 原因的最佳方法是调查辅助机器的当前日期时间,因为它也可能是错误的.不确定您是否仍在寻找答案,但优化日期是问题所在,而不是您的副本集机器之间的连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-01
    • 2016-11-19
    • 2013-01-16
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多