温馨提示×

MongoDB Linux版本更新指南

小樊
31
2025-12-02 17:30:44
栏目: 云计算

MongoDB Linux 版本更新指南

一 升级前准备

  • 明确当前版本与目标版本:查看已安装组件版本(如 mongod --versionmongosh --version),并对照官方支持矩阵确认目标版本是否支持你的部署形态(单机、副本集、分片集群)。
  • 完整备份:使用 mongodump 对业务数据进行逻辑备份,必要时对数据目录与配置文件做离线拷贝。
  • 检查兼容性:审阅目标版本的 Release Notes / Breaking Changes(如存储引擎、认证机制、命令与参数变更)。
  • 维护窗口与回滚方案:选择低峰时段,准备回滚包与回滚步骤。
  • 服务与连接:规划停机或滚动升级策略,提前通知应用方。
  • 权限与工具:确保具备 sudo 权限,安装/可用 mongosh 用于升级后验证。
    以上为升级的通用前置动作,备份与版本核验是关键环节。

二 标准升级流程

  • 步骤 1 备份数据
    使用逻辑备份保障可回滚:
    mongodump --out /path/to/backup/$(date +%F_%T)
    如需物理备份,可在停库后对 dbPath 目录做快照。

  • 步骤 2 停止 MongoDB 服务
    统一停止服务以便包升级:
    sudo systemctl stop mongod
    副本集/分片环境按滚动升级策略逐节点执行。

  • 步骤 3 更新软件包

    • Debian/Ubuntu(APT)
      更新索引并就地升级元包:
      sudo apt update
      sudo apt install -y mongodb-org
    • RHEL/CentOS(YUM/DNF)
      安装新版 RPM 包(或替换本地 .rpm):
      sudo yum install -y /path/to/mongodb-org-.rpm
      或使用仓库最新包:
      sudo yum install -y mongodb-org
      说明:不同发行版与版本系列的仓库配置方式略有差异,请以你的系统与目标版本为准。
  • 步骤 4 启动与开机自启
    sudo systemctl start mongod
    sudo systemctl enable mongod

  • 步骤 5 验证版本与连通性
    查看服务端版本:
    mongod --version
    连接并校验:
    mongosh --eval “db.version()”
    mongosh --eval “db.runCommand({ping:1})”

三 不同部署模式与升级路径

  • 单机/主从(非副本集)
    采用停库—升级—启动—验证的流程;若升级失败,用 mongorestore 从备份恢复。

  • 副本集
    推荐滚动升级:
    1)对 secondary 节点逐一执行“停库—升级—启动—验证”;
    2)对 primary 执行 step down 后升级;
    3)升级后核查复制延迟与错误日志。
    该方式可尽量降低业务中断时间。

  • 分片集群
    按顺序执行:
    1)升级 mongos 路由节点;
    2)逐 shard 按副本集方式滚动升级;
    3)升级 config servers(通常为副本集);
    4)核查 balancer 状态与各分片健康度。

四 回滚与常见问题

  • 回滚方案

    • 逻辑恢复:使用 mongorestore 将备份恢复到升级前状态;
    • 包回退:在 APT/YUM 中降级到旧版本元包或指定版本;
    • 配置回滚:还原 /etc/mongod.conf 与 keyfile/TLS 证书等配置。
      回滚前确保应用已停止写入,回滚后执行数据一致性校验。
  • 常见问题与处理

    • 升级后无法启动:检查 dbPath 权限、storage.engine 配置与日志报错;必要时以单用户模式修复或回滚。
    • 认证失败:确认 SCRAM/SASL 机制与用户凭据在新版本中仍受支持。
    • 命令不存在/参数变更:对照新版本变更日志,调整应用连接与调用方式。
    • 复制/分片异常:核查各节点版本一致性与网络连通性,必要时回滚异常节点并重建复制。
      升级失败的常见根因包括配置不兼容与权限问题,提前备份与灰度验证可显著降低风险。

0