MongoDB在Linux上的版本升级步骤是什么
小樊
45
2026-01-03 03:20:46
MongoDB在Linux上的版本升级步骤
一 升级前准备
- 备份数据:使用逻辑备份确保可回滚,例如执行 mongodump --archive=/backup/full-$(date +%F).bak。对生产环境建议在维护窗口进行,并校验备份可恢复性。
- 检查现状:连接 mongo 执行 db.version() 与 db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 }),记录当前版本与 FCV,便于升级后对齐。
- 兼容性验证:核对驱动、ORM/ODM、认证机制、存储引擎与参数变更;在测试环境用生产副本演练升级流程与业务回归。
- 升级策略:优先选择逐级升级(如 4.4 → 5.0 → 6.0),避免跨多个大版本直接升级;准备回滚预案与监控告警。
二 单机版原地升级步骤
- 步骤概览:
- 备份与停机:执行 mongodump,随后 sudo systemctl stop mongod。
- 升级包管理器:
- Ubuntu/Debian:更新 APT 索引并安装指定版本
sudo apt-get update
sudo apt-get install -y mongodb-org=6.0.5 mongodb-org-server=6.0.5 mongodb-org-shell=6.0.5 mongodb-org-mongos=6.0.5 mongodb-org-tools=6.0.5
- RHEL/CentOS:使用 RPM 升级
sudo rpm -U mongodb-org-server-6.0.5-1.el7.x86_64.rpm
- 启动与自检:sudo systemctl start mongod;确认服务 Active 且 rs.status()/serverStatus() 正常。
- 对齐 FCV:连接 mongo 执行
db.adminCommand({ setFeatureCompatibilityVersion: “6.0” })
注:若从 4.4 → 5.0,因默认 writeConcern 从 {w:1} 调整为 {w:majority},需评估写入延迟上升的影响。
- 验证:db.version()、应用连通性与关键业务回归。
三 副本集滚动升级步骤
- 升级顺序:先降级主节点(rs.stepDown()),再逐台升级并重启,最后在升级后的主节点上提升 FCV。
- 操作要点(示例从 4.4 → 6.0):
- 检查与备份:db.version()、FCV;执行 mongodump。
- 逐节点升级:
- 对当前主节点:rs.stepDown(60)
- 在从节点上:sudo systemctl stop mongod → 升级包(APT/RPM)→ sudo systemctl start mongod → 等待 rs.status() 恢复为 SECONDARY/PRIMARY
- 对齐 FCV:当多数节点为 6.0 后,在主节点执行
db.adminCommand({ setFeatureCompatibilityVersion: “6.0” })
- 验证:主从角色、复制延迟、错误日志与业务功能。
四 分片集群升级步骤
- 升级顺序:先升级 Config Server 副本集,再逐个 Shard 副本集,最后升级 mongos。
- 操作要点:
- 关闭平衡器:sh.stopBalancer();升级完成后 sh.startBalancer()。
- 升级 Config Server:按副本集滚动升级流程逐节点执行。
- 升级每个 Shard:按副本集流程逐节点执行。
- 升级 mongos:按顺序停止旧 mongos、安装新版本并启动(如 sudo mongos --config /etc/mongos.conf --fork)。
- 对齐 FCV:在 mongos 上执行 sh.setFeatureCompatibilityVersion(“6.0”)。
- 验证:各分片复制状态、分片分布、迁移状态与业务连通性。
五 注意事项与回滚
- 变更要点:从 4.4 → 5.0 默认 writeConcern 变为 {w:majority},需评估写入延迟与超时策略;升级采用轮转方式,期间会发生 2–3 次自动重启,请在低峰期执行并确保应用具备自动重连。
- 版本策略:大版本升级通常不支持直接降级;跨多个大版本不建议直接跃迁,优先逐级升级并在测试环境充分验证。
- 回滚建议:若升级失败,优先基于备份执行恢复(mongorestore),或回退到升级前的安装包版本并恢复 FCV;回滚前确保备份可用且一致性校验通过。