温馨提示×

MongoDB在Ubuntu上的版本升级如何配置

小樊
45
2025-12-10 20:03:14
栏目: 云计算

Ubuntu 上 MongoDB 版本升级与配置指南

一 升级前准备

  • 备份数据:使用 mongodump 完整导出,确保可回滚。示例:mongodump --out /path/to/backup-$(date +%F)
  • 检查现状:确认当前版本与运行状态。示例:mongod --versionsudo systemctl status mongod
  • 选择目标版本:优先选择 MongoDB 官方支持的次要版本(如从 4.4 → 5.0 → 6.0 → 7.0 逐级升级),不建议跨多版本跳跃。
  • 维护窗口与回滚预案:选择低峰时段,保留旧包与数据备份,准备回滚脚本。
  • 兼容性核对:检查 驱动版本、应用参数、存储引擎与特性变更(如 WiredTiger 压缩、认证机制、日志与审计等)。

二 原地升级步骤(推荐)

  • 步骤 1 停止服务
    示例:sudo systemctl stop mongod

  • 步骤 2 仅升级软件包(保留数据与配置)
    示例:sudo apt-get update && sudo apt-get install --only-upgrade mongodb-org

  • 步骤 3 如需指定版本或锁定版本

    • 指定组件版本(示例为 6.0.16):
      sudo apt-get install -y mongodb-org=6.0.16 mongodb-org-server=6.0.16 mongodb-org-shell=6.0.16 mongodb-org-mongos=6.0.16 mongodb-org-tools=6.0.16
    • 锁定版本防止意外升级:
      echo "mongodb-org hold" | sudo dpkg --set-selections
      echo "mongodb-org-server hold" | sudo dpkg --set-selections
      echo "mongodb-org-shell hold" | sudo dpkg --set-selections
      echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
      echo "mongodb-org-tools hold" | sudo dpkg --set-selections
  • 步骤 4 启动并验证
    示例:sudo systemctl start mongodsudo systemctl status mongodmongod --versionmongo --eval 'db.version()'(如仍使用旧版 mongo 客户端,建议改用 mongosh)。

三 跨大版本或源不一致时的做法

  • 步骤 1 备份与停服(同上)

  • 步骤 2 清理旧源与残留包(谨慎:不会删除数据目录)
    示例:sudo apt-get purge mongodb-org*(如系统曾用非官方包,按需调整)

  • 步骤 3 导入官方 GPG 密钥并添加新源
    示例:
    wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
    focal 替换为你的 Ubuntu 代号(如 jammy、noble),将 6.0 替换为你的目标系列。

  • 步骤 4 安装目标版本并启动
    示例:sudo apt-get update && sudo apt-get install -y mongodb-org,随后 sudo systemctl start mongod 并验证。

四 升级后的配置要点

  • 配置文件路径:通常为 /etc/mongod.conf;升级后对比新旧配置差异,按需保留自定义项(如 storage.dbPathnet.bindIpsecurity.authorizationreplicationsharding 等)。
  • 权限与认证:若启用 SCRAM-SHA-256x.509,确保用户凭据与驱动兼容;升级后按需执行用户与角色校验。
  • 存储引擎与压缩:默认 WiredTiger;如启用 snappy/zstd 压缩,确认新旧版本支持一致。
  • 日志与审计:检查 systemLog.pathauditLog 配置是否生效,确保磁盘空间充足。
  • 复制集/分片:滚动升级遵循官方顺序(先 secondaryprimary,分片集群先升级 config serversmongos),每一步完成后用 rs.status()sh.status() 校验。
  • 监控与告警:观察 mongod.logreplication lag,确认无异常重启或回滚。

五 常见问题与回滚

  • 服务无法启动:检查 /var/log/mongodb/mongod.log 的错误信息;常见原因包括配置项不兼容、权限不足、数据目录权限或磁盘空间问题。
  • APT 源或 GPG 错误:确认 Ubuntu 代号MongoDB 系列匹配,GPG 导入成功后再 apt update
  • 客户端不兼容:老版本 mongo 可能不支持新服务器,建议安装并使用 mongosh
  • 回滚方案:
    • 仅原地升级失败:用备份执行 mongorestore 恢复;
    • 跨版本重装后:先 apt purge mongodb-org*,再切回旧源并安装旧版本,最后恢复数据。
  • 不建议跨多版本直接升级:例如 4.4 → 6.0/7.0 应先到中间版本,降低风险。

0