如果mongodb故障切换在复制尚未完成时发生呢

如果mongodb故障切换在复制尚未完成时发生呢,mongodb,replication,failover,Mongodb,Replication,Failover,我是mongodb的新手,我有一个问题: 我正在设置一个mongoDB测试环境,有一个mongos、3个conf服务器、2个shard(3个服务器作为一个shard的复制集) 比方说,由于某些原因,我的复制出现了很大的延迟(比如辅助系统正在备份,或者网络问题,或者发生了其他事情,以防万一) 在此期间,主服务器关闭, 会发生什么?自动故障转移选择一个辅助数据库作为新的主数据库,这些数据还没有复制吗 我们会丢失数据吗? 如果是这样的话,我们如何才能找回数据,需要做些什么来避免这样的问题 非常感谢 在

我是mongodb的新手,我有一个问题:

我正在设置一个mongoDB测试环境,有一个mongos、3个conf服务器、2个shard(3个服务器作为一个shard的复制集) 比方说,由于某些原因,我的复制出现了很大的延迟(比如辅助系统正在备份,或者网络问题,或者发生了其他事情,以防万一) 在此期间,主服务器关闭, 会发生什么?自动故障转移选择一个辅助数据库作为新的主数据库,这些数据还没有复制吗

我们会丢失数据吗? 如果是这样的话,我们如何才能找回数据,需要做些什么来避免这样的问题

非常感谢

在此期间,主服务器停机,会发生什么情况

不允许写入

自动故障转移选择一个辅助数据库作为新的主数据库,这些数据还没有复制吗

如果没有将数据从主数据复制到次数据集,而次数据集随后成为主数据集,则当主数据作为次数据集返回到集中时,将发生回滚:

当然,是否丢失数据取决于写入是否转到日志和/或数据文件,以及成员是刚刚离开集合还是崩溃。如果该成员在写入日志之前崩溃,则有可能会丢失写入,是的

我们如何才能找回数据,需要做些什么来避免此类问题

您可以在大多数情况下使用
w=mailty
,但在边缘情况下仍会存在某些无法解决的缺陷,例如,如果在将写入操作分发给其他成员之前主服务器发生故障,等等