副本集协议版本

从 4.0 版开始,MongoDB 仅支持副本集协议版本 1 ( pv1)。pv1是使用 MongoDB 3.2 或更高版本创建的所有新副本集的默认设置。

保存写入

w:1

使用pv1,您可以 catchUpTimeoutMillis在更快的故障转移和w:1写入保存之间确定优先级。

w: "majority"

pv1保证保存已确认的w: "majority"写入。

可用性

pv1在 MongoDB 3.2 或更高版本中可用,并且是使用 3.2 或更高版本创建的所有新副本集的默认设置。

仲裁者

对于以下 MongoDB 版本,与具有仲裁器的副本集相比 (MongoDB 4.0+ 不再支持)pv1增加了回滚的可能性:w:1pv0

  • MongoDB 3.4.1
  • MongoDB 3.4.0
  • MongoDB 3.2.11 或更早版本

对于支持 的其他版本的 MongoDB pv1pv1不会增加w:1带有仲裁者的副本集回滚的可能性。

优先事项

对于以下 MongoDB 版本,与具有不同设置的副本集相比 (MongoDB 4.0+ 不再支持) pv1增加了回滚的可能性:w:1pv0members[n\].priority

  • MongoDB 3.4.1
  • MongoDB 3.4.0
  • MongoDB 3.2.11 或更早版本

对于支持的其支持pv1的 MongoDB版本,设置pv1不会增加具有不同设置w:1的副本集设置members[n].priority回滚的可能性。

否决权

pv1不使用否决权。个别节点可以在特定选举中投票支持或反对候选人,但不能单独否决(中止)选举。

同时初选的检测

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

pv1使用术语的概念。这允许更快地检测同时进行的初选,并在短时间内进行多次成功的选举。

背靠背选举

pv1做出“最大努力”尝试让具有最高priority可用呼叫选举的次级。这可能导致背靠背选举,因为具有更高优先级的合格成员可以召集选举。

但是,在 MongoDB 3.6+(以及 MongoDB 3.4.2+ 和 3.2.12+)中,对于pv1

  • 优先级选举被限制为仅当优先级较高的节点与当前主节点的距离在 10 秒内时才会发生。
  • 如果仲裁者检测到与候选人同等或更高优先级的健康初选,他们将在选举中投反对票。

双重投票

pv1防止在一名成员的选举呼吁中进行双重投票。这是通过使用术语来实现的。

修改副本集协议版本

从 4.0 版开始,MongoDB 仅支持副本集协议版本 1 ( pv1)。

但是,MongoDB 3.2 到 MongoDB 3.6 支持副本集协议版本1和协议版本0

在将 MongoDB 3.2 的协议版本更改为 MongoDB 3.6 之前,请确保至少有一个 oplog 条目(从当前协议版本生成)已从主节点复制到所有辅从节点。要检查,在每个从节点上,检查从optimes.lastCommittedOpTime.t返回的字段 rs.status()。例如,连接mongosh到每个从节点并运行:

rs.status().optimes.lastCommittedOpTime.t
  • 如果当前副本集协议版本是0,则t等于-1
  • 如果当前副本集协议版本为1t则大于-1

一旦您确认至少一个 oplog 条目(使用当前协议版本)已复制到所有从节点,您就可以更改协议版本。

要更改副本集协议版本,rs.reconfig()请使用新的 protocolVersion. 例如,升级到pv1,连接 mongosh到当前主节点并执行以下操作序列:

cfg = rs.conf();
cfg.protocolVersion=1;
rs.reconfig(cfg);

您可以catchUpTimeoutMillis在更快的故障转移和w:1写入保存之间确定优先级。

副本集配置副本集故障排除

原文链接: https://docs.mongodb.com/manual/reference/replica-set-protocol-versions/

译者:陆文龙

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""