副本集成员国

副本集的每个成员都有一个状态。

Number Name State Description
0 STARTUP 尚未成为任何集合的活跃成员。所有成员都以这种状态启动。 mongodSTARTUP时解析副本集配置文档
1 PRIMARY 处于状态primary的成员是唯一可以接受写操作的成员。有资格投票。
2 SECONDARY 处于状态secondary的成员正在复制数据存储。有资格投票。
3 RECOVERING 成员要么执行启动自检,要么从完成rollbackresync过渡。有资格投票。
5 STARTUP2 该成员已加入集合,并正在运行初始同步。有资格投票。
6 UNKNOWN 从集合的另一个成员看,该成员的状态尚不清楚。
7 ARBITER Arbiters不复制数据,仅存在于选举中。有资格投票。
8 DOWN 从集合的另一个成员看,该成员是不可访问的。
9 ROLLBACK 该成员正在积极执行rollback。有资格投票。无法从该成员读取数据。
10 REMOVED 该成员曾经在副本集中,但随后被删除。

States

Core States

有关核心状态的更多信息,请参见副本集成员

Other States

在复制足够的数据以保证 Client 端可以读取一致的数据后,成员从RECOVERING过渡到SECONDARYRECOVERINGSECONDARY状态之间的唯一区别是RECOVERING禁止 Client 端读取而SECONDARY允许它们读取。 SECONDARY状态不能保证有关主数据的陈旧性。

由于过载,secondary可能远远落在副本集的其他成员之后,因此可能需要与副本集的其余成员resync。发生这种情况时,成员进入RECOVERING状态并需要手动干预。

Error States

处于任何错误状态的成员均无法投票。

[1] some circumstances中,副本集中的两个节点可能暂时认为它们是主要节点,但是最多,其中一个节点将能够完成{ w: "majority" }写入关注。可以完成{ w: "majority" }写操作的节点是当前主节点,另一个节点是以前的主节点,通常由于network partition而尚未识别其降级。发生这种情况时,尽管已请求读取首选项primary,但连接到先前主服务器的 Client 端仍可能会观察到过时的数据,并且对先前主服务器的新写入最终将回滚。
首页