重新配置mongodb replicaset时是否会丢失记录?

重新配置mongodb replicaset时是否会丢失记录?,mongodb,replication,database-replication,Mongodb,Replication,Database Replication,我在MongoDB中有3个成员replicaSet,当重新配置服务器实例的主机名时,这些replicaSet崩溃了。我必须重新配置replicaSet,但是我很好奇MongoDB如何处理未在所有成员之间同步的记录 案例1)MongoDB服务器上有一条新记录,我可以访问该记录重新配置集合。 案例2)另一个MongoDB服务器上有一条新记录,稍后添加到副本集中。每个副本集都有一个主节点和一个或多个辅助节点 所有写入操作都发生在主服务器上。然后,主服务器将这些更改发送给辅助服务器(更改列表称为“opl

我在MongoDB中有3个成员replicaSet,当重新配置服务器实例的主机名时,这些replicaSet崩溃了。我必须重新配置replicaSet,但是我很好奇MongoDB如何处理未在所有成员之间同步的记录

案例1)MongoDB服务器上有一条新记录,我可以访问该记录重新配置集合。

案例2)另一个MongoDB服务器上有一条新记录,稍后添加到副本集中。

每个副本集都有一个主节点和一个或多个辅助节点

所有写入操作都发生在主服务器上。然后,主服务器将这些更改发送给辅助服务器(更改列表称为“oplog”)。这意味着主成员始终是具有最新数据的成员

当主副本突然无法访问时,副本集将被置于只读模式,并进行选择以查找新的主副本。通常会选择最新的辅助系统(有关的更多详细信息)。任何尚未传播到该辅助服务器的写入操作都将丢失

当旧的主副本重新联机时,它将作为辅助副本重新加入副本集。它的数据将同步到新主服务器的状态。只有在旧主设备上发生的、在崩溃之前未传播到新主设备的任何写入操作都将回滚


回滚写入将作为bson文件备份到目录
/rollback
中,并可以使用和将其重新添加到副本集中。有关此过程的详细信息可在文章中找到

旧写操作不会丢失,它们会被分解到文件中以进行手动合并,或者称为回滚场景。在某种情况下可能发生的情况也值得参考。@NeilLunn heh似乎确实如此way@NeilLunn非常感谢。我在答案上加了这个。