0

假设我们有一个包含 3 个节点的副本集(2 个数据和一个仲裁器)

A->primary, priority=2
B->secondary, priority=1, 10 seconds behind A
C->arbiter

现在 A 失败,B 成为主要的。一段时间后,A 变为在线,进行回滚并在同步后再次成为主节点。现在我们可以应用回滚数据。

我的问题是如果 A 的优先级为 1 会发生什么。在上线并回滚后,它将与 B 同步。现在我们应该在哪个服务器上应用回滚数据?因为 A 不再是主要的。我们是否应该将回滚的数据传输到 B 并执行操作?

4

1 回答 1

2

因为您只能对主节点进行写入,所以回滚的数据应始终应用于主节点。在您的情况下,这意味着您需要将数据移动到服务器 B,或者只使用mongorestore与新的主节点对话(使用 -h 参数)。mongorestore实用程序很可能不允许将数据应用到辅助节点。

于 2012-04-17T09:17:41.293 回答