“文档” 菜单
文档首页
/
MongoDB Manual
/ /

升级到 MongoDB 的最新版本

在此页面上

  • 升级之前
  • 升级程序
  • 升级 MongoDB 实例
  • 替换现有二进制文件
  • 升级副本集
  • 升级分片集群

MongoDB 版本控制的形式为 X.Y.Z ,其中Z是指修订/补丁编号。 修订版提供安全补丁、错误修复以及通常不包含任何破坏性变更 (breaking change)的新功能或已更改功能。始终升级到版本系列中的最新版本。

有关版本管理的详情,请参阅 MongoDB 版本管理

确保您拥有数据集的最新备份。请参阅 MongoDB 备份方法

  • 有关 MongoDB 版本的任何特殊注意事项或兼容性问题,请参阅以下文档:

    • 发布说明,位于发布说明。

    • 驱动程序的文档。

重要

  • 从 MongODB 4.2 开始,MongoDB 删除了对 Ubuntu 16.04 PPCLE 的支持。

  • 从 MongoDB 3.6.13 开始, MongoDB 3.6 系列删除了对 Ubuntu 16.04 PPCLE 的支持。

  • 从 MongoDB 3.4.21 开始, MongoDB 3.4 系列删除了对 Ubuntu 16.04 PPCLE 的支持。

如果您的安装包括副本集,请在预定义的维护窗口期间计划升级。

从 MongoDB 4.0.7 开始, change stream使用版本 1 v1恢复令牌。4.0.7 之前的 MongoDB 版本使用v0恢复令牌。

从 MongoDB 4.0.6 或更早版本升级到 MongoDB 4.0.7 或更高版本时,当连接到尚未更新的成员v1即 只接受v0或 BinData 令牌)并失败。 在这种情况下,客户端必须等待升级完成才能恢复change stream。

在升级生产环境之前,请使用本文档中的程序升级可重现生产环境的暂存环境,以确保生产配置与所有更改兼容。

重要

在升级 MongoDB 之前,请务必备份所有数据。

使用此处描述的步骤分别升级每个mongodmongos二进制文件。 升级二进制文件时,请使用升级 MongoDB 实例过程。

请按照以下步骤进行升级:

  1. 对于使用身份验证的部署,请先升级所有 MongoDB 驱动程序。要升级,请参阅驱动程序的文档

  2. 升级分片集群,如升级分片集群中所述。

  3. 升级任何独立运行实例。请参阅升级 MongoDB 实例

  4. 升级不属于分片集群的任何副本集,如升级副本集中所述。

要升级mongodmongos实例,请使用以下方法之一:

  • 使用操作系统的包管理工具和官方 MongoDB 包升级实例。这是首选方法。请参阅安装 MongoDB

  • 通过使用新的二进制文件替换现有二进制文件来升级实例。请参阅替换现有二进制文件

  • 在重新启动实例之前,对配置文件进行任何必要的更改。

重要

在升级 MongoDB 之前,请务必备份所有数据。

本节介绍如何通过替换现有二进制文件来升级 MongoDB。升级的首选方法是使用操作系统的软件包管理工具和 MongoDB 官方软件包,如安装 MongoDB 中所述。

要通过替换现有二进制文件升级 mongodmongos 实例:

  1. MongoDB 下载页面下载最新 MongoDB 修订版的二进制文件,并将二进制文件存储在临时位置。 二进制文件作为压缩文件下载,可以解压缩到 MongoDB 安装所使用的目录结构。

  2. 关闭实例。

  3. 将现有 MongoDB 二进制文件替换为下载的二进制文件。

  4. 进行任何所需的配置文件更改。

  5. 重新启动实例。

要升级副本集,请单独升级每个节点,从节点开始,节点结束。 在预定义的维护窗口期间规划升级。

重要

升级或降级副本集之前,请确保所有副本集节点都正在运行。否则,升级或降级操作将在所有节点启动后才会完成。

注意

从 MongoDB 4.0.7 开始, change stream 使用版本 1 v1恢复令牌。 4.0.7 之前的 MongoDB 版本使用v0恢复令牌或 BinData 恢复令牌。

从 MongoDB v1升级到 MongoDB 4.0.7 或更高版本时,当连接到尚未更新的节点(即 只接受v0令牌或 BinData)并失败。 在这种情况下,客户端必须等待升级完成才能恢复change stream。

分别升级每个从节点,如下所示:

  1. 按照升级 MongoDB 实例中的说明升级从节点的 mongod 二进制文件。

  2. 升级从节点后,请等待从节点恢复到 SECONDARY 状态,然后再升级下一个实例。要检查成员状态,请在 mongosh 中发出 rs.status()

    从节点可能会短暂进入 STARTUP2RECOVERING。这很正常。请务必等待从节点完全恢复到 SECONDARY,然后再继续升级。

  1. 对主节点降级,以启动正常的故障转移程序。使用以下其中一项:

    在故障转移期间,副本集无法接受写入。通常需要 10-20 秒。在预定义的维护窗口期间计划升级。

    注意

    对主节点降级优于直接关闭主节点。降级可以加快故障转移程序。

  2. 主节点降级后,从 mongosh 中调用 rs.status() 方法,直到看到另一个节点处于 PRIMARY 状态。

  3. 按照升级 MongoDB 实例中的说明关闭原始主节点并升级其实例。

在版本 3.4 中进行了更改:该过程适用于 6.0。 要对其他版本的 MongoDB 分片集群进行修订升级,请参阅相应版本的手册。

注意

从 MongoDB 4.0.7 开始, change stream 使用版本 1 v1恢复令牌。 4.0.7 之前的 MongoDB 版本使用v0恢复令牌或 BinData 恢复令牌。

从 MongoDB 4.0.6 或更早版本升级到 4.0.7 或更高版本时,分片集群的成员将继续生成v0或 BinData 恢复令牌,直到更新mongos实例。 升级后的mongos实例将开始生成v1 change stream 恢复令牌。这些令牌不能用于在尚未升级到 4.0.7 或更高版本的mongos上恢复流。

要升级 6.0 分片集群:

  1. 按照禁用负载均衡器中的说明禁用集群的负载均衡器。

  2. 升级配置服务器

    要升级配置服务器副本集,请使用升级副本集中的操作步骤。

  3. 升级每个分片。

  4. 升级配置服务器和分片后,按照 mongos 升级 MongoDB 实例中的说明升级每个实例。您可以按照任意顺序升级 mongos 实例。

  5. 重新启用负载均衡器,如启用负载均衡器中所述。

后退

运行时数据库配置

来年

管理