温馨提示×

mongodb在centos上如何升级

小樊
37
2025-11-19 21:01:55
栏目: 云计算

CentOS 上 MongoDB 升级指南

一 升级前准备

  • 备份数据:使用 mongodump 全量备份,确保可回滚。示例:mongodump --out /path/to/backup
  • 检查版本与状态:确认当前 mongodmongo 版本,查看服务状态。示例:mongod --versionmongo --eval "db.version()"systemctl status mongod
  • 规划升级路径:MongoDB 稳定版为偶数代(如 4.4、5.0、6.0、7.0),不支持跨大版本直接升级,需按相邻版本逐级升级(如 4.2 → 4.4 → 5.0 → 6.0 → 7.0)。
  • 检查特性兼容版本:在 admin 库执行 db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1}),升级前将其设置为当前大版本(例如升级到 4.4 前设为 “4.2”)。
  • 准备回滚方案:保留旧版本二进制或快照,备份配置文件 /etc/mongod.conf 与数据目录(默认 /var/lib/mongo)。

二 通过 YUM 在线升级(推荐)

  • 添加官方仓库(以目标版本为准,示例为 6.0):创建文件 /etc/yum.repos.d/mongodb-org-6.0.repo,内容如下:
    [mongodb-org-6.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
    
  • 升级软件包:
    • 升级到指定大版本系列:sudo yum update mongodb-org-6.0
    • 或升级到仓库最新版:sudo yum install -y mongodb-org
  • 重启服务:sudo systemctl restart mongod
  • 验证版本:mongod --versionmongo --eval "db.version()"
  • 注意:若从旧主版本跨到新主版本,需按相邻版本逐步执行上述步骤。

三 二进制替换升级(适用于非 YUM 安装或自定义路径)

  • 正常关闭实例:优先使用 db.shutdownServer();如异常关闭,需清理 data 目录/mongod.lock 后再启动。
  • 备份旧二进制与配置:cp /usr/local/mongodb/bin /usr/local/mongodb/bin.bakcp /etc/mongod.conf /etc/mongod.conf.bak
  • 下载并解压新版本(选择与系统匹配的包,如 rhel70 对应 CentOS 7):
    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-<version>.tgz
    tar -zxvf mongodb-linux-x86_64-rhel70-<version>.tgz
    
  • 替换二进制:仅替换核心可执行文件(建议先备份):
    cd /usr/local/mongodb
    mv bin old_bin && mv mongodb-linux-x86_64-rhel70-<version>/bin .
    # 或仅替换:install_compass、mongo、mongod、mongos
    
  • 启动并验证:./bin/mongod --config /etc/mongod.conf;连接后执行 db.version() 确认。

四 升级后验证与回滚

  • 版本与服务:确认 mongodmongo 版本一致,systemctl status mongodactive (running)
  • 功能与兼容性:在 admin 库检查并视需要提升特性兼容版本:
    • 查看:db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})
    • 提升(示例到 4.4):db.adminCommand({setFeatureCompatibilityVersion: "4.4"})
  • 应用回归:执行业务回归测试,观察 mongostat/mongotop 与错误日志。
  • 回滚:若异常,先停服务,恢复旧二进制与 /etc/mongod.conf,必要时用 mongorestore 恢复备份数据。

五 常见问题与处理

  • 依赖缺失:安装或升级失败可先补齐依赖,例如 sudo yum install -y libcurl openssl xz-libs
  • SELinux 限制:可临时 sudo setenforce 0 验证,生产环境建议配置正确的 SELinux 策略而非永久关闭。
  • 旧版本残留冲突:如需彻底重装,先 sudo yum remove mongodb-org*,再清理 /var/lib/mongo/var/log/mongodb 后重装。
  • 升级路径错误:跨大版本直接升级可能导致启动失败或数据不可用,务必按相邻版本逐步升级。

0