对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

副本集成员状态

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

数值
名称
状态描述

0

还不是任何设立的活动成员。所有成员均会以此状态启动。 在mongod STARTUP中解析副本集配置文档。

1

处于主节点状态的成员是唯一可以接受写入操作的成员。有资格投票。

2

处于从节点状态的成员正在复制数据存储。有资格投票。

3

成员要么执行启动自检,要么完成回滚重新同步后进行转换。数据无法用于来自此成员的读取。有资格投票。

5

节点正在运行初始同步。有资格投票,但新添加到副本集时除外。

6

从集合中的另一个成员来看,该成员的状态尚不清楚。

7

仲裁节点不复制数据,其存在的唯一目的是参与选举。有资格投票。

8

从集合的另一个成员来看,该成员是无法访问的。

9

该成员正在主动执行回滚。有资格投票。数据无法用于来自此成员的读取。

从版本4.2 开始,当成员进入 状态时, MongoDB会终止所有正在进行的用户操作。ROLLBACK

10

此成员曾经在副本集中,但随后被删除。

PRIMARY

处于 状态的成员接受写入操作。一个副本集一次最多有一个主节点 (primary nodePRIMARY in the replica set)。 []1 SECONDARY成员在选举后成为主节点 (primaryPRIMARY node in the replica set)。处于 状态的成员有资格投票。

SECONDARY

处于SECONDARY 状态的成员会复制主节点的数据集,并可配置为接受读取操作。从节点有资格在选举中投票,并且如果主节点 (primary node in the replica set)不可用,则可能会被选为PRIMARY 状态。

ARBITER

处于ARBITER 状态的成员不会复制数据,也不接受写入操作。它们有资格投票,且其存在仅出于在选举期间打破平局。如果副本设立拥有偶数个有投票权的成员,并且可能会出现平局选举,则副本集应该只拥有处于ARBITER 状态的成员。在所有副本集,最多只能配置一个仲裁节点。有关使用仲裁节点时的注意事项,请参阅副本集仲裁节点。

有关核心状态的详细信息,请参阅副本集成员

STARTUP

副本集的每个成员都以STARTUP 状态启动。然后,mongod 会加载该成员的副本集配置,并将该成员的状态转换为STARTUP2ARBITERSTARTUP 中的成员没有资格投票,因为它们尚未成为任何副本集的认可成员。

STARTUP2

在版本5.0中进行了更改。

一旦 完成加载节点的配置,副本集的每个数据承载节点就会进入STARTUP2 mongod状态。

然后,该成员决定是否进行初始同步。如果成员开始初始同步,则该成员将保持STARTUP2 状态,直到复制所有数据并构建所有索引。然后,该成员转换为RECOVERING

STARTUP2中新添加的成员没有资格投票,也无法在初始同步进程中当选。在MongoDB.5 0之前,STARTUP2 中的成员有资格投票。

RECOVERING

RECOVERING副本集的成员在未准备好接受读取时会进入 状态。RECOVERING 状态可以在正常操作期间出现,并且不一定反映错误情况。处于RECOVERING 状态的成员有资格在选举中投票,但没有资格进入PRIMARY 状态。

RECOVERING复制足够多的数据后,成员会从SECONDARY 转换到RECOVERING ,以保证客户端读取的数据视图一致。 和SECONDARY 状态之间的唯一区别是RECOVERING 禁止客户端读取,而SECONDARY 允许客户端读取。 状态不保证有关主节点 (primary node in the replicaSECONDARY set)的数据过时。

由于过载,从节点(secondary node from replica set)可能远远落后于副本集的其他成员,因此可能需要与设立的其余成员重新同步。发生这种情况时,成员会进入RECOVERING 状态并需要手动干预。

ROLLBACK

每当副本集在选举中替换主节点 (primary node in the replica set)时,旧的主节点 (primary node in theROLLBACK replica set)可能包含未复制到从从节点(secondary node from replica set)成员的文档。在这种情况下,旧的主节点 (primary node in the replicaROLLBACK set)成员会恢复这些写入。在回滚期间,成员将处于 状态。处于 状态的成员有资格在选举中投票。

从版本4.2 开始,当成员进入 状态时, MongoDB会终止所有正在进行的用户操作。ROLLBACK

处于任何错误状态的成员都不能投票。

UNKNOWN

从未向副本集传达过状态信息的成员处于UNKNOWN 状态。

DOWN

与副本集失去连接的成员将被副本设立的其余成员视为DOWN

REMOVED

从副本集删除的成员会进入REMOVED 状态。当成员进入REMOVED 状态时,日志将使用replSet REMOVED 消息条目标记该事件。

[1]

某些情况下,副本集中的两个节点可能会暂时认为它们是主节点,但最多只能有其中一个节点能够完成具有{ w: "majority" }写入关注的写入操作。可以完成{ w: "majority" }写入操作的节点是当前主节点,另一个节点是尚未识别其降级(通常是由于网络分区)的前主节点。发生这种情况时,尽管已请求读取偏好primary,但连接到前主节点的客户端可能会观察到过时数据,并且对前主节点的新写入操作最终将回滚。

给本页内容打分