温馨提示×

CentOS上MongoDB版本升级步骤

小樊
44
2025-12-27 05:56:23
栏目: 云计算

CentOS 上 MongoDB 升级步骤

一 升级前准备

  • 备份数据:使用 mongodump --out /path/to/backup 全量备份,确保可回滚。
  • 检查当前版本:执行 mongod --versionmongo --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 --versionmongo --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(分片与配置服务器),全程保持应用可降级与回滚预案。

0