【MongoDB】副本集成员状态的解释

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

状态号

状态名称

释义

说明

0

STARTUP

启动

尚未成为任何集群的活跃成员。所有成员都以这种状态启动。 mongod在启动时会解析副本集配置文档

1

PRIMARY

处于primary状态的成员是唯一可接受写操作的成员。

有资格投票。

2

SECONDARY

辅助

处于secondary状态的成员正在复制数据存储。

有资格投票。

3

RECOVERING

恢复

成员执行启动自检,或从 完成回滚或重新同步 过渡。

有资格投票。

5

STARTUP2

启动2

该成员已加入集群,并且正在运行初始同步。

有资格投票。

6

UNKNOWN

未知

从集群中另一个成员的角度看,该成员的状态未知。

7

ARBITER

仲裁

仲裁不复制数据,仅存在于选举中。

有资格投票。

8

DOWN

掉线

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

9

ROLLBACK

回滚

该成员正在积极执行回滚。

有资格投票。

无法从该成员读取数据。从4.2版开始,当成员进入ROLLBACK状态时,MongoDB将终止所有正在进行的用户操作。

10

REMOVED

已删除

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

一、核心状态

1. PRIMARY

处于PRIMARY状态的成员接受写操作。

一个副本集一次最多具有一个主副本。

SECONDARY成员在选举后成为主成员[1]。

PRIMARY状态的成员有资格投票。

2.SECONDARY

处于SECONDARY状态的成员复制主数据库的数据集,并且可通过配置接受读取操作。

辅助节点有资格在选举中投票,如果主节点不可用,则可以选举为PRIMARY。

3.ARBITER

处于ARBITER状态的成员不复制数据或接受写操作。

他们有资格投票,仅在选举中打破平局。

如果副本集的表决成员数将是偶数,并且副本集可能受困,则副本集应仅具有处于ARBITER状态的成员。

任何副本集中最多只能配置一个仲裁。有关使用仲裁的注意事项,请参阅副本集仲裁

 

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

二、其他状态

1. STARTUP

副本集的每个成员都以STARTUP状态启动。然后mongod加载该成员的副本集配置信息,并将其状态转换为STARTUP2或ARBITER。 STARTUP中的成员尚未获得任何投票集的公认成员资格,因此没有资格投票。

2.STARTUP2

mongod完成加载该成员的配置后,副本集中的每个数据承载成员都会进入STARTUP2状态,这时它将成为副本集中的活跃成员并可以投票。然后,成员决定是否进行初始同步。如果成员开始初始同步,则该成员将保留在STARTUP2中,直到复制所有数据并构建所有索引为止。之后,成员转换为RECOVERING。

3.RECOVERING

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

在复制了足够的数据以保证用于客户端读取的数据的一致视图之后,成员从RECOVERING过渡到SECONDARY。 RECOVERING和SECONDARY状态之间的唯一区别是RECOVERING禁止客户端读取,而SECONDARY允许它们读取。 SECONDARY状态不能保证任何有关主数据过时问题。

由于过载,辅助副本可能远远落在副本集的其他成员之后,因此它可能需要与副本集中的其余成员重新同步。发生这种情况时,成员将进入RECOVERING状态,并且需要手动干预。

4.ROLLBACK

每当副本集替换一次选举中的主副本时,旧的主副本可能包含未复制到辅助成员的文档。在这种情况下,旧的主要成员将还原这些写入。在回滚期间,成员将具有ROLLBACK状态。处于ROLLBACK状态的成员有资格在选举中投票。

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

三、错误状态

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

1.UNKNOWN

从未将状态信息传递给副本集的成员处于UNKNOWN状态。

2.DOWN

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

3.REMOVED

从副本集中删除的成员进入“REMOVED”状态。 当成员进入REMOVED状态时,日志将使用replSet REMOVED消息条目记录此事件。

[1]在某些情况下,副本集中的两个节点可能会短暂地认为它们是主要节点,但是最多,其中一个节点将能够完成{w:“ majority”}写入问题。 可以完成{w:“ majority”}写入的节点是当前主节点,另一个节点是以前的主节点,通常由于网络分区而尚未意识到其降级。 发生这种情况时,尽管已请求前一个主服务器读取优先级,但连接到前一个主服务器的客户端仍可能会观察到过时的数据,并且对前一个主服务器的新写入最终将回滚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值