假设我们有一个包含3个节点(2个数据和1个仲裁器)的副本集
A->primary, priority=2
B->secondary, priority=1, 10 seconds behind A
C->arbiter
现在A失败,B成为主要。经过一段时间后,A变为在线,回滚并在同步后再次变为主要状态。现在我们可以应用roll支持的数据。
我的问题是,如果A的优先级为1.在进入在线并进行回滚后会发生什么,它将与B同步。现在我们应该在哪个服务器上应用滚动支持的数据?因为A不再是主要的。我们是否应该将滚动支持的数据传输到B并执行操作?
答案 0 :(得分:2)
因为您只能对主数据库进行写操作,所以应该始终在主数据库上应用回滚数据。在您的情况下,您需要将数据移动到服务器B,或者只需使用mongorestore与新主服务器(使用-h参数)进行通信。 mongorestore实用程序很可能不允许将数据应用于辅助数据库。