MongoDB Replication Lag 在不同的 shell 中对于相同的情况显示为负数和正数

Posted

技术标签:

【中文标题】MongoDB Replication Lag 在不同的 shell 中对于相同的情况显示为负数和正数【英文标题】:MongoDB Replication Lag appears negative and positive for the same case in different shells 【发布时间】:2018-01-15 04:46:04 【问题描述】:

当我在主 Mongodb shell 上运行 db.printSlaveReplicationInfo() 时,我得到了正的复制延迟。当我在辅助 Mongodb shell 上运行 db.printSlaveReplicationInfo() 时,我得到了负复制延迟。

当我在 db.js 文件中查看 printSlaveReplicationInfo 的 MongoDB 代码时,我看到复制滞后计算为“Primary[OptimeDate] - Secondary[OptimeDate]。

复制中的数据从主节点复制到辅助节点。那么主要时间小于次要时间不是很明显吗?那么当我在 Primary Mongodb shell 上运行 db.printSlaveReplicaionInfo() 时,为什么 Primary - Secondary 时间会给出正值?

【问题讨论】:

如果您阅读这篇文章会是个好主意link @Chetan - 我刚刚编辑了你的帖子 - 你写的是 db.printSlaveReplicationLag() 而你正在运行的函数实际上叫做 db.printSlaveReplicationInfo() 【参考方案1】:

您可以查看该功能的great docs。服务器上的clock drift 有时会导致负延迟。你有NTP daemon 在这些机器上活动吗/?您可以通过运行date 查看您的时钟。

再次,来自the docs

如果该方法在一个 次要在一段时间不活动后复制写入,但是 在它收到来自主节点的最新心跳之前 优化时间。

有关您的副本集的最新信息,它是 通常建议在 主要的。

【讨论】:

以上是关于MongoDB Replication Lag 在不同的 shell 中对于相同的情况显示为负数和正数的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB设置 Replication Sets

MongoDB设置 Replication Sets

mongodb replication

如何测量复制mongo数据库的时间?

kafka中Replication相关概念-"悟空智慧教育"

mongodb replication 维护总结