所以我有8台服务器。让我们把它命名为:
P1,S2,S3,S4,S5,S6,S7和S8。
P1是主服务器,其余是辅助服务器。
场景#1:
P1丢失互联网连接并关闭。根据我的理解,其中一个辅助服务器将接管。
如果P1重新上线会怎样?一旦上线,它会再次成为主流吗? P1在离线时所做的任何更改会发生什么?
场景#2:
S4失去互联网连接并停机。
当S4下线时,它会成为主要的吗?它能够对自己的数据库进行更改吗?一旦它重新上线并与主数据库同步,将决定哪些更改优先于另一个?它被改变的时间?
答案 0 :(得分:2)
如果P1重新上线会怎样?一旦上线,它会再次成为主流吗? P1在离线时所做的任何更改会发生什么?
没有。 P1将在中学状态恢复在线状态。如果要进行另一个副本集选举,P1只能再次成为主节点。有关详细信息,请参阅replication。
当P1未处于主状态时,不应对其进行任何更改。如果出现双主要方案,则对P1发出的任何写入都将为rolled back,一旦发现它不再是主要,并开始协调过程以完全同步。
当S4下线时,它会成为主要的吗?它能够对自己的数据库进行更改吗?一旦它重新上线并与主数据库同步,将决定哪些更改优先于另一个?它被改变的时间?
S4不会成为自己的主要人物。服务器作为副本集的成员运行,并且知道它无法与大多数副本集通信,从而使其无法处于主状态。
解析网络分区后,S4将查询主节点并将其最新的oplog条目与主节点上的oplog进行比较。写入将按照它们在主要的oplog中记录的顺序应用。