CentOS上MongoDB版本升级步骤
小樊
44
2025-12-27 05:56:23
CentOS 上 MongoDB 升级步骤
一 升级前准备
- 备份数据:使用 mongodump --out /path/to/backup 全量备份,确保可回滚。
- 检查当前版本:执行 mongod --version 与 mongo --eval ‘db.version()’ 确认现网版本与客户端可用性。
- 确认升级路径:MongoDB 不支持跨多个大版本直接升级,需要按官方支持路径逐级升级(例如:4.2 → 4.4 → 5.0 → 6.0 → 7.0)。
- 校验集群/实例状态:副本集应无节点处于 ROLLBACK/RECOVERING;分片集群先规划滚动升级窗口。
- 检查特性兼容版本:在 admin 库执行
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
升级前需确保 FCV 处于当前大版本(如从 4.2 → 4.4,FCV 应为 “4.2”)。
- 兼容性核对:确认驱动、应用与将要升级到的 MongoDB 版本兼容。
- 准备回滚方案:保留旧版本二进制与数据备份,便于快速回退。
二 使用 YUM 仓库升级(推荐)
- 备份与停机:先完成备份,再执行 sudo systemctl stop mongod。
- 配置官方仓库:创建 /etc/yum.repos.d/mongodb-org.repo,示例(以 4.4 为例,可按需调整版本):
[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
- 升级软件包:
- CentOS 7:执行 sudo yum install -y mongodb-org
- CentOS 8:执行 sudo dnf install -y mongodb-org
- 启动与验证:
- 启动:sudo systemctl start mongod
- 状态:sudo systemctl status mongod
- 版本:mongod --version 与 mongo --eval ‘db.version()’
- 注意:若从旧主版本跨到新主版本,仍需按逐级路径执行多次升级;YUM 方式便于后续小版本更新。
三 手动升级二进制(tgz 方式)
- 下载与解压:从官网获取对应平台的 mongodb-linux-x86_64-.tgz,解压至如 /usr/local/mongodb。
- 正常关闭:优先使用 db.shutdownServer() 正常关闭;若异常终止,需清理 mongod.lock 再启动。
- 替换二进制:稳妥做法是仅替换可执行文件(如 mongod/mongos,以及 mongo;自 6.0 起不再内置 mongo,使用 mongosh)。
- 启动与验证:按原配置启动(如 /usr/local/mongodb/bin/mongod --config /etc/mongod.conf),确认进程与版本正常。
四 升级后关键操作
- 提升特性兼容版本 FCV:在 admin 库执行(逐级提升,幂等可重试)
- 4.2 → 4.4:db.adminCommand({ setFeatureCompatibilityVersion: “4.4” })
- 4.4 → 5.0:db.adminCommand({ setFeatureCompatibilityVersion: “5.0” })
- 5.0 → 6.0:db.adminCommand({ setFeatureCompatibilityVersion: “6.0” })
- 6.0 → 7.0:db.adminCommand({ setFeatureCompatibilityVersion: “7.0” })
提升 FCV 会更新内部系统集合,完成后用 getParameter 校验。
- 客户端工具:自 6.0 起不再随包提供 mongo,请使用 mongosh。
- 验证与回滚:核查日志、监控指标、应用连通性与关键业务;若异常,按备份与旧二进制回滚。
五 副本集与分片集群注意事项
- 滚动升级顺序:逐节点升级,遵循 SECONDARY → PRIMARY(通过 rs.stepDown() 触发主从切换),每步升级后观察复制与业务状态再继续。
- 节点状态:升级前确保无节点处于 ROLLBACK/RECOVERING;升级后核对复制延迟与错误日志。
- 分片集群:先升级 mongos,再按上述方式滚动升级各 mongod(分片与配置服务器),全程保持应用可降级与回滚预案。