温馨提示×

MongoDB版本升级在CentOS上怎么操作

小樊
49
2025-11-19 21:05:56
栏目: 云计算

CentOS 上 MongoDB 版本升级操作指南

一 升级前准备

  • 备份数据:使用 mongodump 全量备份,确保可回滚。示例:mongodump --out /path/to/backup_$(date +%F)
  • 检查现状:确认当前版本与部署形态。命令:mongod --versionmongo --eval "db.version()";如为副本集/分片,记录各成员版本与角色。
  • 选择升级路径:MongoDB 大版本通常需逐级升级,不可跨多个主版本;例如从 4.2 → 4.4 → 5.0
  • 检查特性兼容版本 FCV:在升级前将 FCV 设置为当前大版本,升级完成后再提升到新版本。示例:db.adminCommand({getParameter:1, featureCompatibilityVersion:1}) 查看;需要时执行 db.adminCommand({setFeatureCompatibilityVersion:"4.2"})
  • 变更与兼容性:阅读目标版本的发布说明/兼容性变更,评估驱动、索引、认证、存储引擎等影响,并在测试环境验证。
  • 维护窗口与回滚方案:选择业务低峰期,准备回滚包或快照,确保应用具备自动重连能力。

二 升级路径与方式

  • 使用 YUM 仓库在线升级(推荐,适用于通过官方仓库安装的场景,支持 CentOS 7/8
    1. 创建/更新仓库文件:/etc/yum.repos.d/mongodb-org.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
    
    1. 清理缓存并升级:sudo yum clean all && sudo yum update mongodb-org-4.4;如需最新大版本,可将仓库指向对应系列后执行 sudo yum install -y mongodb-org
    2. 重启服务:sudo systemctl restart mongod;验证:mongod --versionmongo --eval "db.version()"
  • 手动替换二进制(适用于二进制安装或自定义目录的场景)
    1. 正常关闭实例:mongo --eval "db.shutdownServer()"
    2. 下载并解压新版本,替换关键二进制:install_compassmongomongodmongos
    3. 使用原配置启动:/usr/local/mongodb/bin/mongod --config /etc/mongod.conf;验证版本并观察日志。
  • 升级顺序要点:严格逐级进行;副本集可滚动升级(先辅助后主);分片集群先升级 mongos,再逐片升级 mongod,升级期间避免对集合元数据做变更。

三 升级后验证与回滚

  • 版本与进程:确认 mongod --versionmongo --eval "db.version()" 为新版本;systemctl status mongodactive (running)
  • 复制与分片状态:副本集执行 rs.status() 检查各成员 SECONDARY/PRIMARY 状态;分片集群确认 balancer 已恢复、各分片数据分布正常。
  • FCV 提升:升级完成后将 featureCompatibilityVersion 提升到新版本,例如:db.adminCommand({setFeatureCompatibilityVersion:"4.4"})(或目标版本),再验证应用访问与关键业务。
  • 性能与行为变更:从 4.4 → 5.0 起,默认 writeConcern{w:1} 调整为 {w:majority},可能出现写入延迟上升,需在业务侧评估与压测。
  • 回滚策略:如验证失败,优先用备份恢复;二进制替换场景可快速回滚到旧二进制并用原配置启动;YUM 场景可降级对应 mongodb-org 包版本后重启。

四 常见问题与注意事项

  • 禁止跨大版本:例如 4.2 直接到 5.0 不被支持,应按 4.2 → 4.4 → 5.0 逐级升级。
  • 异常关闭处理:若异常终止,启动失败且数据目录存在 mongod.lock,需排查后删除该锁文件再启动。
  • 配置与路径:升级后沿用原 /etc/mongod.conf 配置路径与数据目录,避免误指向新目录导致“数据不一致”。
  • 高可用与连接:副本集/分片升级期间会发生主从切换,应用建议使用 ConnectionStringURI 并开启自动重连。
  • 升级耗时与影响:耗时与数据量、版本跨度相关;升级完成后不支持大版本降级,请在升级前充分验证。

0