MongoDB featureCompatibilityVersion升级至5.0卡住数小时,求解决方案
处理MongoDB featureCompatibilityVersion升级卡住的方案
从你提供的currentOp输出来看,setFeatureCompatibilityVersion操作已运行超7小时(28545秒),持有Mutex写锁并等待AnonymousLockableLatch,可按以下步骤排查解决:
检查集群/节点状态
- 若为副本集:执行
rs.status()确认所有节点已升级至MongoDB 5.0二进制版本,主节点状态正常、从节点同步无延迟;通过db.printReplicationInfo()查看oplog是否充足,无积压情况。 - 若为分片集群:确认所有分片节点、config server均已升级到5.0,且各分片当前FCV为4.4。
- 若为副本集:执行
排查系统资源瓶颈
用iostat、top等命令监控服务器CPU、内存、磁盘IO使用率,同时检查磁盘剩余空间:- 磁盘IO过高会阻塞元数据更新操作;磁盘空间不足会直接中断升级流程,需确保资源充足。
查找阻塞操作
执行以下命令排查是否有其他长时间运行的操作抢占资源:db.currentOp({"active": true, "opid": {$ne: 552338}})重点关注长时间查询、批量写入、索引创建等操作,必要时终止非关键操作释放资源。
查看MongoDB日志
打开mongod日志文件,搜索setFeatureCompatibilityVersion相关条目,排查是否存在节点连接失败、数据校验错误、权限问题等警告或错误,这些通常是卡住的核心原因。终止卡住的操作并重试
若以上排查无异常,可尝试终止当前卡住的升级操作(操作有风险,需确认无依赖操作):db.killOp(552338)操作终止后,重新执行FCV升级命令:
db.adminCommand({setFeatureCompatibilityVersion: "5.0"})
内容的提问来源于stack exchange,提问作者Rajat Jain
相关产品推荐
相关产品推荐

