我怎么知道MongoDB恢复何时结束

我怎么知道MongoDB恢复何时结束,mongodb,recovery,replicaset,Mongodb,Recovery,Replicaset,根据标题,我有一个带有1个主、1个辅助和1个仲裁器的复制集,我在主数据库中恢复了一个大DB,它是一个比辅助数据库快得多的实例。 现在,辅助系统滞后了很多(小时),并且从几小时后就处于恢复状态。 我能做点什么吗?我能知道恢复进度吗?我先回答你的第二个问题。“我可以知道恢复进度吗?” 是的,您可以连接到副本集primary并执行rs.status()命令以查看rs中每个成员的状态。请参阅输出的stateStr字段,该字段将表示状态代码的友好名称。这表明了复苏的进展 然而,在你的标题中,你问是否可以知

根据标题,我有一个带有1个主、1个辅助和1个仲裁器的复制集,我在主数据库中恢复了一个大DB,它是一个比辅助数据库快得多的实例。 现在,辅助系统滞后了很多(小时),并且从几小时后就处于恢复状态。
我能做点什么吗?我能知道恢复进度吗?

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

然而,在你的标题中,你问是否可以知道它何时结束。这要困难得多。无法“准确地”知道辅助服务器何时完成与另一个成员的同步

关于“我能做点什么吗?”;是的,但是没有什么能准确地回答您想要知道复制何时结束的愿望。请参阅
rs.status()
输出,特别检查
optime
字段,并将其与次要成员和正在同步的成员(在您的情况下是主要成员)进行比较。这只会让我们“了解”两台服务器之间的距离。然而,仅此一点并不十分准确,其他因素可能会影响赶超的实际时间。它不会告诉你它将在特定的时间完成


还有,;如果在您的使用案例中,您的服务器质量不一样,我也会听取Markus Mahlberg的建议。这和许多其他因素都可能导致复制延迟,包括磁盘io问题、网络延迟(包括跨数据中心因素)。这里没有明确的答案

附带说明:让副本集成员在性能上有巨大差异是一个非常糟糕的主意™. 假设使用率保持不变,则在某个使用点,到较慢成员的复制将开始落后,并且没有机会赶上。始终具有性能大致相同的数据承载副本集成员。是的,我看到了,谢谢你的回答,我以二次关机、删除、删除、重新添加结束,在完全重新同步后一切都很顺利。我认为实例之间的巨大资源差距造成了差异(以及问题)