我如何知道MongoDB恢复何时结束

时间:2015-04-25 10:44:19

标签: mongodb recovery replicaset

根据标题,我有一个带有1个主副本,1个辅助副本和1个仲裁者的副本集,我在主要数据库中恢复了一个大数据库,它比辅助数据库快得多。 现在,中学已经滞后了很多(小时),并且从小时起就处于恢复状态。 我可以做点什么吗?我能否知道恢复进度?

1 个答案:

答案 0 :(得分:1)

我先回答你的第二个问题。 “我能知道恢复进展吗?” 是的,您可以连接到副本集主服务器并执行rs.status()命令以查看RS中每个成员的状态。引用输出的stateStr字段,它将表示状态代码的友好名称。这表明了复苏的进展。

在你的标题中,你问你是否知道它什么时候结束。那要困难得多。当辅助设备完成与其他成员的同步时,无法准确地知道。

关于“我能做点什么吗?”;是的,但没有什么能给你一个确切的答案,你想知道什么时候复制将结束。请参阅rs.status()输出,并专门检查optime字段,并将其与辅助成员及其正在同步的成员(在您的情况下是主要成员)进行比较。这只能提供“一些”洞察两个服务器相隔多远的距离。然而,仅此一点并不十分准确,其他因素可能会影响赶上实际的时间。它不会告诉你它将在特定时间完成。

也;如果在您的用例中您的服务器质量不同,我也会提出Markus Mahlberg的建议。这个和许多其他因素可能导致复制滞后,包括磁盘问题,网络延迟,包括交叉数据中心因素。这里没有明确的答案。