MongoDB 主要副本在次要副本可以自我同步之前失败
MongoDB primary replica failed before secondary replicas can sync themselves
我的mongo db有3个replicas,1为主节点,2,3为副节点。
假设发生以下事件序列
1) 副本1写入文档A,并复制到2,3
2) 副本 1 写入文档 B,但出于某种原因无法将其复制到任何其他副本。
3) 副本 1 遇到一些故障
下一步应该发生什么。我知道选举将在 2、3 之间进行,其中一个将成为主要的,而另一个将成为次要的,并且操作将继续进行,但是 1 中的文档 B 记录呢,当 1 从故障中恢复时是否应该复制它?
https://docs.mongodb.com/manual/core/replica-set-rollbacks/:
... if the primary had accepted write operations that the secondaries had not successfully replicated before the primary stepped down. When the primary rejoins the set as a secondary, it reverts, or “rolls back,” its write operations to maintain database consistency with the other members.
看起来很清楚
为了防止回滚已向客户端确认的数据,运行 所有投票成员都启用了日记并使用 w: majority write concern 来保证写入操作传播到副本集的大多数返回给发出客户端的确认之前的节点。
我的mongo db有3个replicas,1为主节点,2,3为副节点。 假设发生以下事件序列
1) 副本1写入文档A,并复制到2,3
2) 副本 1 写入文档 B,但出于某种原因无法将其复制到任何其他副本。
3) 副本 1 遇到一些故障
下一步应该发生什么。我知道选举将在 2、3 之间进行,其中一个将成为主要的,而另一个将成为次要的,并且操作将继续进行,但是 1 中的文档 B 记录呢,当 1 从故障中恢复时是否应该复制它?
https://docs.mongodb.com/manual/core/replica-set-rollbacks/:
... if the primary had accepted write operations that the secondaries had not successfully replicated before the primary stepped down. When the primary rejoins the set as a secondary, it reverts, or “rolls back,” its write operations to maintain database consistency with the other members.
看起来很清楚
为了防止回滚已向客户端确认的数据,运行 所有投票成员都启用了日记并使用 w: majority write concern 来保证写入操作传播到副本集的大多数返回给发出客户端的确认之前的节点。