MongoDB副本集featureCompatibilityVersion升级停滞,如何回滚至3.4?
MongoDB副本集Feature Compatibility Version升级停滞回滚至3.4解决方案
执行
rs.add("<IP>:<PORT>")添加新节点失败,日志提示Feature Compatibility Version(FCV)不兼容,尝试执行db.adminCommand({ setFeatureCompatibilityVersion: "3.6" })升级FCV后,查询FCV状态得到如下结果:rspp1:PRIMARY> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) { "featureCompatibilityVersion" : { "version" : "3.4", "targetVersion" : "3.6" }, "ok" : 1, "$gleStats" : { "lastOpTime" : { "ts" : Timestamp(1681888293, 1), "t" : NumberLong(27) }, "electionId" : ObjectId("7fffffff000000000000001b") }, "$configServerState" : { "opTime" : { "ts" : Timestamp(1681889207, 1), "t" : NumberLong(5) } } }该状态表明FCV升级已发起但未完成,直接执行
db.adminCommand({ setFeatureCompatibilityVersion: "3.4" })无法回滚,需按以下步骤操作:
操作步骤
确认副本集节点状态
在主节点执行rs.status(),确保主节点为PRIMARY状态,所有从节点状态正常(SECONDARY/ARBITER),无失联或同步异常节点。终止正在进行的FCV升级
在主节点执行以下命令终止升级流程:db.adminCommand({ abortFeatureCompatibilityVersionUpgrade: 1 })执行成功后会返回
{ "ok": 1 }结果。验证升级终止结果
再次查询FCV状态:db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )正常情况下,返回结果中仅保留
"version": "3.4",不再显示targetVersion字段。确认副本集同步完成
执行rs.printSlaveReplicationInfo(),检查所有从节点的同步延迟,确保所有节点已同步主节点的最新oplog。(可选)重新处理新节点加入问题
若新节点仍无法加入,确认新节点的MongoDB版本为3.4.x(与现有集群FCV版本兼容),同时检查新节点配置文件中的副本集名称与现有集群一致。
内容的提问来源于stack exchange,提问作者Chirag Sharma
相关产品推荐
相关产品推荐

