副本集主要
主节点是副本集中接收写操作的唯一成员。 MongoDB 在primary上应用写操作,然后在主oplog上记录操作。 Secondary成员复制此日志并将操作应用于其数据集。
在下面的三成员副本集中,主数据库接受所有写入操作。然后,辅助服务器复制操作日志以应用于其数据集。
副本集的所有成员都可以接受读取操作。但是,默认情况下,应用程序将其读取操作定向到主要成员。有关更改默认读取行为的详细信息,请参见Read Preference。
副本集最多可以有一个主副本。 [1]如果当前的主要数据库不可用,则选举确定新的主要数据库。有关更多详细信息,请参见副本集选举。
在以下 3 成员副本集中,主数据库不可用。这将触发一次选举,该选举将选择其余的中学之一作为新的小学。
[1] | 在some circumstances中,副本集中的两个节点可能暂时认为它们是主要节点,但是最多,其中一个节点将能够完成{ w: "majority" }写入关注。可以完成{ w: "majority" }写操作的节点是当前主节点,另一个节点是以前的主节点,通常由于network partition而尚未识别其降级。发生这种情况时,尽管已请求读取首选项primary,但连接到先前主服务器的 Client 端仍可能会观察到过时的数据,并且对先前主服务器的新写入最终将回滚。 |