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

MongoDB分片集群升级至5.0后设置FCV失败,报uuid缺失错误

解决MongoDB 4.4升级到5.0设置FCV失败的问题

问题分析

设置Feature Compatibility Version(FCV)为5.0时失败,核心原因是SRS_4分片读取config.collections中集合9a79fb83-7c4e-4927-88ec-b462438b8471.galileo.prepared_data的元数据条目时,发现必填字段uuid缺失。尽管该集合在SRS_4上无任何数据块,但分片仍会同步配置节点的元数据,缺失uuid导致FCV升级的校验逻辑失败。

解决步骤

1. 验证配置节点的集合元数据

连接到配置节点副本集的主节点,执行以下命令检查目标集合的元数据:

use config
db.collections.findOne({_id: "9a79fb83-7c4e-4927-88ec-b462438b8471.galileo.prepared_data"})

确认返回结果中是否存在uuid字段。如果不存在,执行下一步补充该字段。

2. 为集合添加缺失的UUID

在配置节点主节点上,生成新UUID并更新集合元数据:

// 生成新的UUID
var newUUID = UUID()

// 更新config.collections中的集合条目,确保同步到多数节点
db.collections.updateOne(
   {_id: "9a79fb83-7c4e-4927-88ec-b462438b8471.galileo.prepared_data"},
   {$set: {uuid: newUUID}},
   {writeConcern: {w: "majority", wtimeout: 60000}}
)

等待命令执行成功,确保元数据更新同步到所有配置节点。

3. 刷新SRS_4分片的路由缓存

连接到mongos,执行命令强制SRS_4分片重新从配置节点同步元数据:

db.adminCommand({
   _flushRoutingTableCacheUpdates: "9a79fb83-7c4e-4927-88ec-b462438b8471.galileo.prepared_data",
   syncFromConfig: true,
   writeConcern: {w: "majority", wtimeout: 60000}
})

如果该命令执行失败,可直接重启SRS_4分片的所有副本集成员,让节点重新加载配置元数据。

4. 重新执行FCV设置命令

回到mongos,再次尝试设置FCV:

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

注意事项

  • 操作前务必备份配置节点的config数据库,避免元数据修改导致的意外问题。
  • 建议在集群负载较低的时段执行操作,减少对业务的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:22:34