我正在将 MongoDB 副本集从 3.0.15 升级到 3.2.22。当我使用 3.2.22 二进制文件启动节点时,lastHeartbeatMessage
每次运行以下命令时,我都会看到以下内容:rs.status()
尽管该节点显示为,SECONDARY
并且日志文件中没有任何内容表明出现问题,但我还是看到了此消息。每当我将新文档插入到 时PRIMARY
,我也可以在 中看到相同的文档SECONDARY
,然后上述消息就会消失。我一开始看到上述消息有什么原因吗?
答案1
存在影响 MongoDB 3.2 的已知问题(服务器-20144),其中陈旧数据lastHeartbeatMessage
可能直到从主数据库复制新数据后才会被清除。插入或更新数据应该可以解决这个问题。
我相信 MongoDB 3.4 中的复制更改已经缓解了这个问题,如果集群空闲时间超过 10 秒(每服务器-23892)。3.4 无操作复制更改是最大过期时间 (Max Staleness) 规范这使得驱动程序能够估计次级设备的老化程度,以便支持新的maxStalenessSeconds
阅读偏好选项。
由于 MongoDB 3.2 版本系列于 2018 年 9 月终止使用,我强烈建议升级到更新且积极支持的生产版本。