- 首页 >
- 问答 >
-
云计算 >
- centos mongodb版本升级攻略
centos mongodb版本升级攻略
小樊
39
2025-11-21 20:12:10
CentOS 上 MongoDB 版本升级攻略
一 升级总览与准备
- 升级前务必完成:全量备份(如 mongodump)、确认当前版本(mongod --version 或 shell 内 db.version())、在测试环境演练、规划维护窗口并通知业务方。升级以“小步快跑、可回滚”为原则,减少风险窗口。
二 升级路径与兼容性关键点
- 逐级升级:MongoDB 不支持跨多个主版本直接升级,需按相邻主版本逐步升级(例如:4.2 → 4.4 → 5.0)。每一步升级后都建议先验证应用与数据一致性,再继续下一步。
- 特性兼容性版本 FCV:升级前将 featureCompatibilityVersion(FCV) 设置为当前版本(如从 4.2 → 4.4 前,确保 FCV=4.2),升级完成并验证无误后再提升到新版本(如 4.4)。示例:
- 查看:db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})
- 设置:db.adminCommand({setFeatureCompatibilityVersion: “4.2”})
- 特殊版本注意:从 4.0 → 4.2 需检查 local.replset.minvalid 集合是否存在 oplogDeleteFromPoint 字段,若存在需先清理或调整后再升级,避免不兼容导致启动失败。
三 升级方式一 YUM 在线升级(推荐)
- 步骤概览:
- 备份数据与配置;2) 配置或确认 MongoDB 官方 YUM 仓库;3) 执行升级命令;4) 重启服务;5) 验证版本与 FCV;6) 按需提升 FCV。
- 仓库配置示例(按需选择目标版本仓库,以下为 4.4 示例):
- 新建文件:/etc/yum.repos.d/mongodb-org-4.4.repo
- 内容:
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
- 执行升级与验证:
- 升级:sudo yum install -y mongodb-org
- 重启:sudo systemctl restart mongod
- 验证:mongod --version 或 mongo --eval “db.version()”
- 提升 FCV(确认无误后):db.adminCommand({setFeatureCompatibilityVersion: “4.4”})
- 说明:不同版本请切换对应的 repo 段(如 4.2、4.4 等),保持仓库与安装包版本一致,避免混装。
四 升级方式二 离线 RPM 或二进制替换
- RPM 就地升级(适用于无外网环境):
- 备份数据与配置;2) 下载目标版本 RPM(建议整包:server/shell/tools);3) 正常关闭实例(mongo shell 内 db.shutdownServer());4) 执行升级:sudo rpm -U *.rpm;5) 启动:sudo systemctl start mongod;6) 验证版本与 FCV;7) 按需提升 FCV。
- 二进制替换(Tarball 场景):
- 备份与正常关闭;2) 解压新版本,备份并替换 bin/ 下的关键可执行文件(如 mongod、mongos、mongo、install_compass);3) 启动并验证;4) 按需提升 FCV。
- 异常关闭处理:若以 kill 等异常方式终止,可能残留 mongod.lock,需清理后再启动(仅在确认异常关闭的前提下执行)。
五 升级后验证与回滚策略
- 验证清单:
- 服务状态:systemctl status mongod;日志无异常(journal 或 logpath);
- 版本:mongod --version / db.version();
- FCV:db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1});
- 复制集/分片:rs.status()、sh.status() 正常;
- 应用连通性与关键业务回归;监控 mongostat、mongotop 观察性能与异常。
- 回滚建议:
- 优先基于备份恢复(mongorestore);YUM 场景可降级到旧版本包并重启;RPM 场景可用 rpm -U 回退或重装旧包;回退后按需将 FCV 调回原版本。任何回滚前再次确认数据与配置的回滚一致性。