如何升级Ubuntu上的MongoDB版本
导读:Ubuntu 上升级 MongoDB 的稳妥做法 一 升级前准备 备份数据:使用 mongodump 全量导出,确保可回滚。示例:mongodump --out /path/to/backup-$(date +%F 。 检查现状:确认当前...
Ubuntu 上升级 MongoDB 的稳妥做法
一 升级前准备
- 备份数据:使用 mongodump 全量导出,确保可回滚。示例:
mongodump --out /path/to/backup-$(date +%F)。 - 检查现状:确认当前版本与运行状态。示例:
mongod --version、mongo --eval "db.version()"、sudo systemctl status mongod。 - 规划版本路径:跨大版本升级(如 3.x → 4.x、4.2 → 4.4、4.4 → 5.0/6.0/7.0)务必查阅对应版本的升级兼容性说明,必要时先在测试环境演练。
- 选择升级方式:
- 原地升级(推荐大多数场景):保留数据目录与配置,通过 APT 升级包版本。
- 迁移升级:用 mongodump/mongorestore 迁至新实例,风险更可控,适合跨大版本或重大变更。
二 原地升级步骤(APT)
- 停服务:
sudo systemctl stop mongod - 导入官方 GPG 密钥(按需选择与你目标版本匹配的密钥):
- 4.4:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - - 6.0:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
- 4.4:
- 添加官方 APT 源(将 UBUNTU_CODENAME 替换为你的系统代号,如 focal、jammy;将 6.0 替换为你的目标版本):
- 示例:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu UBUNTU_CODENAME/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
- 示例:
- 更新索引并安装目标版本(推荐固定版本以避免意外升级):
- 固定安装示例:
sudo apt-get update
sudo apt-get install -y mongodb-org=6.0.12 mongodb-org-server=6.0.12 mongodb-org-shell=6.0.12 mongodb-org-mongos=6.0.12 mongodb-org-tools=6.0.12 - 如需跟随仓库最新小版本:
sudo apt-get install -y mongodb-org
- 固定安装示例:
- 启动与验证:
sudo systemctl start mongodsudo systemctl status mongodmongod --version、mongo --eval "db.version()"
- 可选 版本锁定(防止 apt 无意升级):
echo "mongodb-org hold" | sudo dpkg --set-selections- 对
mongodb-org-server、mongodb-org-shell、mongodb-org-mongos、mongodb-org-tools执行同样命令
三 副本集或分片的滚动升级要点
- 遵循官方支持路径,按阶段逐个升级:通常先 Secondary,再 Primary(通过
rs.stepDown()),最后 mongos。 - 升级前确保 featureCompatibilityVersion(FCV) 与目标版本匹配;需要时按官方指引调整 FCV,再继续升级其他节点。
- 每步升级后观察复制延迟、日志告警与业务指标,确认无异常再推进下一节点。
四 常见问题与回滚
- 导入密钥失败或源不可用:确认使用与目标版本一致的 GPG 密钥与仓库路径;不同版本密钥不同(如 server-4.4.asc、server-6.0.asc)。
- 服务无法启动:检查 /var/log/mongodb/mongod.log 中的权限、存储引擎、配置项变更等;必要时用备份回滚。
- 回滚方案:
- 原地回滚:用 APT 安装旧版本包(保持同一小版本系列更稳妥),或先停服务、换源后
sudo apt-get install mongodb-org=< 旧版本>再启动。 - 迁移回滚:使用 mongorestore 将备份恢复到旧实例。
- 原地回滚:用 APT 安装旧版本包(保持同一小版本系列更稳妥),或先停服务、换源后
- 重要提示:跨大版本回滚可能需要先调整 FCV 或执行索引重建等兼容性操作,务必在测试环境验证。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何升级Ubuntu上的MongoDB版本
本文地址: https://pptw.com/jishu/748783.html
