温馨提示×

Linux系统中MongoDB的升级步骤是什么

小樊
45
2025-12-28 06:30:55
栏目: 云计算

Linux系统中MongoDB升级步骤

一 升级前准备

  • 完整备份数据:使用mongodump导出全库或关键库,确保可回滚。示例:mongodump --out /path/to/backup-$(date +%F)
  • 检查当前版本与运行状态:mongod --versionsystemctl status mongod,确认数据目录、日志路径、配置文件位置。
  • 核对系统与目标版本兼容性:操作系统版本、CPU架构、驱动/依赖库,以及目标MongoDB版本对特性与驱动的要求。
  • 规划升级路径:MongoDB不支持跨多个大版本直接升级,需按官方支持路径逐级升级(如:4.2 → 4.4 → 5.0 → 6.0 → 7.0)。
  • 变更窗口与回滚方案:选择低峰时段,保留旧包与配置,准备回滚脚本与备份。
  • 在测试/预生产环境演练:覆盖应用连接、认证、索引、事务、特性开关等关键场景。

二 标准升级流程(以包管理为例)

  • Debian/Ubuntu
    1. 更新索引:sudo apt-get update
    2. 执行升级:sudo apt-get install --only-upgrade mongodb-org
    3. 重启服务:sudo systemctl restart mongod
    4. 验证版本:mongod --version
  • RHEL/CentOS
    1. 更新索引:sudo yum update(或 dnf)
    2. 执行升级:sudo yum update mongodb-org
    3. 重启服务:sudo systemctl restart mongod
    4. 验证版本:mongod --version
  • 说明:升级命令会替换二进制与工具包,配置文件通常保留;如有自定义路径或参数,请核对**/etc/mongod.conf**。

三 手动二进制替换升级(适用于无包管理或特殊目录场景)

  • 正常关闭实例:优先使用db.shutdownServer();如异常终止,清理数据目录下的mongod.lock后再启动。
  • 下载并解压目标版本二进制包(选择与系统匹配的版本与架构)。
  • 备份旧二进制并替换:建议仅替换核心可执行文件(如:mongod、mongos,以及工具如mongo/mongosh)。示例:
    • mv /usr/bin/mongod /usr/bin/mongod-<old>
    • ln -s /opt/mongodb-linux-<new>/bin/mongod /usr/bin/mongod
  • 启动新版本:sudo systemctl start mongod 或按配置文件前台启动验证。
  • 注意:从MongoDB 6.0起,传统mongo shell不再随包提供,使用mongosh;若需兼容旧脚本,可单独安装对应版本的shell。

四 升级后关键操作

  • 验证服务与复制集/分片状态:
    • 单机:systemctl status mongodmongod --version
    • 复制集/分片:rs.status()sh.status(),确认节点角色与健康。
  • 设置特性兼容性版本(FCV):逐级升级完成后,将featureCompatibilityVersion提升到目标版本(如从4.2 → 4.4)。示例:
    • use admin
    • db.adminCommand({ setFeatureCompatibilityVersion: "4.4" })
    • 验证:db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
  • 应用与驱动验证:回归核心业务、索引/事务、认证机制(如SCRAM-SHA-256)、监控告警与备份任务。
  • 客户端工具:如使用Robo 3T,需确认其内置shell与目标MongoDB版本匹配,必要时升级或更换工具。

五 常见问题与回滚建议

  • 启动失败/闪退:优先检查**/var/log/mongodb/mongod.log**,核对dbPath、storage.engine、net.bindIp、systemLog.path等配置;资源不足时检查内存/磁盘;必要时以--repair方式尝试修复(谨慎用于生产)。
  • 版本不兼容:确认操作系统、驱动、工具链与目标MongoDB版本匹配;必要时在测试环境复现并调整。
  • 回滚策略:
    • 包管理:使用包管理器降级到旧版本(如apt-get install mongodb-org=<old_version>yum downgrade)。
    • 二进制:将二进制与配置恢复到升级前快照/备份,必要时用mongorestore恢复数据。
  • 风险提示:升级前务必完成全量备份充分演练;生产环境建议灰度/滚动升级并保留回滚窗口。

0