温馨提示×

CentOS下MongoDB的版本升级步骤是什么

小樊
42
2025-12-07 13:43:13
栏目: 云计算

CentOS 下 MongoDB 版本升级步骤

一 升级前准备

  • 备份数据:使用 mongodump 全量备份,确保可回滚。示例:mongodump --out /path/to/backup/$(date +%F)
  • 检查现状:确认当前版本与特性兼容版本。示例:mongod --version;在 mongo shell 中执行:db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})
  • 升级策略:MongoDB 的大版本一般需逐级升级,不能跨多个主版本;补丁版本可直接升级。例如:4.2 → 4.4 → 5.03.2.x → 3.2.y 可直接升级。
  • 兼容性核对:查阅目标版本的 Release Notes,确认存储引擎、配置项、驱动与 API 的变更与弃用。
  • 维护窗口:选择低峰期,提前通知业务方。

二 通过 YUM 在线升级(适用于使用官方仓库的 RPM 安装)

  • 备份与正常关闭:先完成数据备份,再在 mongo shell 中执行:use admin; db.shutdownServer();
  • 配置或更新仓库:编辑 /etc/yum.repos.d/mongodb-org.repo,将仓库指向目标主版本(如 4.45.0 等)。示例(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
    
  • 执行升级:
    • 指定组件升级:sudo yum update -y mongodb-org-server mongodb-org-mongos mongodb-org-shell mongodb-org-tools
    • 或升级整个元包:sudo yum update -y mongodb-org
  • 重启服务:sudo systemctl restart mongod
  • 验证版本:mongod --versionmongo --eval "db.version()"

三 使用 RPM 包就地升级(适用于手动下载 RPM 的场景)

  • 备份与正常关闭:同上。
  • 下载目标版本的 RPM(示例):wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-<version>.tgz(或从官方获取对应 RPM)。
  • 升级二进制/包:
    • RPM 升级:sudo rpm -U mongodb-org-server-<version>.rpm mongodb-org-mongos-<version>.rpm mongodb-org-shell-<version>.rpm mongodb-org-tools-<version>.rpm
    • 或解压 tar 包后替换 bin/ 下的可执行文件(常见为:mongod、mongos、mongo/或 mongosh)。
  • 启动与验证:sudo systemctl restart mongod,随后检查版本与进程状态。

四 升级后启用新特性与验证

  • 升级特性兼容版本 FCV:在 mongo shell 中执行(逐大版本升级后执行一次):
    • 4.2 → 4.4db.adminCommand({setFeatureCompatibilityVersion: "4.4"})
    • 4.4 → 5.0db.adminCommand({setFeatureCompatibilityVersion: "5.0"})
      说明:该命令会更新内部系统集合,操作幂等,失败可重试。
  • 验证与回滚预案:
    • 功能与性能验证:检查应用连接、慢查询、复制/分片状态(如 rs.status()sh.status())、使用 mongostatmongotop 观察。
    • 如遇异常:先回退 FCV 到上一个主版本(例如:setFeatureCompatibilityVersion: "4.4"),再评估回滚到旧版本二进制。

五 常见注意事项与故障排查

  • 禁止跨多个主版本:例如 3.2 不能直接升到 5.0,需按中间版本逐级升级。
  • 必须正常关闭:避免 kill -9 导致异常,如异常关闭需按步骤清理锁文件后再启动。
  • 4.0 → 4.2 的已知不兼容:检查 local.replset.minvalid 集合,若存在 oplogDeleteFromPoint 字段需先处理,再升级。
  • 驱动与 Shell:自 6.0 起不再内置 mongo shell,需使用 mongosh;旧版本可继续使用或单独下载。
  • 配置与存储引擎:升级后核对 mongod.conf 与存储引擎兼容性,必要时参考官方升级指南逐项检查。

0