You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级含Arbiter的双节点MongoDB副本集至3.6后Arbiter兼容性问题咨询

为什么仲裁节点的功能兼容性版本(FCV)仍为3.4?

这主要有两个核心原因:

1. 仲裁节点的二进制版本未升级到3.6

仲裁节点虽然不存储业务数据,但它的二进制版本必须和集群中其他数据节点保持一致。如果你的仲裁节点还在运行MongoDB 3.4的程序,它根本不支持3.6版本的FCV配置,所以会一直显示3.4。很多人升级副本集时容易忽略仲裁节点,这是最常见的问题。

2. FCV命令仅作用于存储数据的节点

db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )这个命令是用来修改**数据节点(主、从节点)**的数据集元数据的,仲裁节点不持有副本集的数据集,所以这个命令不会自动同步或更新仲裁节点的FCV配置。即使仲裁节点的二进制已经升级到3.6,它的FCV可能还是默认的3.4,需要手动确认状态并进行调整。


如何让仲裁节点与主从节点保持一致?

按照以下步骤操作:

步骤1:确认仲裁节点的二进制版本

登录到仲裁节点的MongoShell,执行以下命令查看当前版本:

db.version()

如果返回的是3.4.x版本,说明你需要先升级仲裁节点的二进制程序:

  • 停止仲裁节点的MongoDB服务
  • 替换为MongoDB 3.6版本的二进制文件(注意和主从节点的版本保持完全一致,比如3.6.23)
  • 重新启动仲裁节点服务

步骤2:同步仲裁节点的FCV配置

当仲裁节点二进制升级到3.6后,再次登录MongoShell,先检查当前FCV状态:

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

如果返回结果仍为3.4,直接在仲裁节点上执行FCV设置命令:

db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )

注意:虽然仲裁节点不存储数据,但执行这个命令不会有任何副作用,它会更新仲裁节点自身的配置,使其FCV与集群保持一致。

步骤3:验证集群整体一致性

最后,登录主节点的MongoShell,执行以下命令检查所有节点的状态:

rs.status()

查看每个节点的version(二进制版本),确保所有节点的二进制版本都是3.6;同时确认主从节点的FCV为3.6,仲裁节点的FCV也同步完成。


内容的提问来源于stack exchange,提问作者Andrii Litvinov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:56:09