升级到最新版本的 MongoDB

在本页面

MongoDB versioning的格式为X.Y.Z,其中Z表示修订/补丁号。修订版提供了安全修补程序,错误修复程序以及新的或更改的功能,这些功能通常不包含任何向后突破的更改。始终升级到发行系列中的最新版本。

有关版本控制的更多信息,请参见MongoDB Versioning

Before Upgrading

Important

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

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

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

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

  • 发行说明位于Release Notes

  • 如果您的安装包括replica sets,请在 sched 义的维护时段内计划升级。

  • 在升级生产环境之前,请使用本文档中的过程来升级可复制您的生产环境的* staging *环境,以确保您的生产配置与所有更改兼容。

Note

从 MongoDB 3.6 开始,MongoDB 默认情况下启用对"majority"读取关注的支持。

对于 MongoDB 3.6.1-3.6.x,您可以禁用读取关注"majority",以防止存储高速缓存压力使具有主从仲裁器(PSA)架构的部署固定下来。禁用"majority"读取关注也将禁用对Change Streams的支持

有关更多信息,请参见禁用多数阅读关注

Upgrade Procedure

Important

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

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

请遵循以下升级过程:

升级 MongoDB 实例

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

  • 使用 os 的程序包 Management 工具和官方的 MongoDB 程序包升级实例。这是首选方法。参见Install MongoDB

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

替换现有的二进制文件

Important

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

本节介绍如何通过替换现有二进制文件来升级 MongoDB。升级的首选方法是使用 os 的程序包 Management 工具和官方的 MongoDB 程序包,如Install MongoDB中所述。

要通过替换现有的二进制文件来升级mongodmongos实例,请执行以下操作:

  • MongoDB 下载页面下载最新的 MongoDB 版本的二进制文件,并将这些二进制文件存储在一个临时位置。这些二进制文件以 zipfile 的形式下载,这些文件解压缩到 MongoDB 安装所使用的目录结构中。

  • 关闭实例。

  • 用下载的二进制文件替换现有的 MongoDB 二进制文件。

  • 重新启动实例。

升级分片群集

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

要升级 3.6 分片群集:

要升级配置服务器副本集,请使用升级副本集中的过程。

升级副本集

要升级副本集,请分别从secondariesprimary分别升级每个成员。在 sched 义的维护时段内计划升级。

Upgrade Secondaries

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

  • 按照升级 MongoDB 实例中的说明升级辅助节点的mongod二进制文件。

  • 升级辅助节点后,请 await 辅助节点恢复到SECONDARY状态,然后再升级下一个实例。要检查成员的状态,请在mongo shell 中发出rs.status()

辅助节点可能会短暂进入STARTUP2RECOVERING。这是正常的。在 continue 升级之前,请确保 await 辅助节点完全恢复到SECONDARY

升级主数据库

在故障转移期间,该集不能接受写入。通常,这需要 10 到 20 秒。在 sched 义的维护时段内计划升级。

Note

降低主数据库比直接“关闭”主数据库更好。降级可加快故障转移过程。

  • 主数据库降级后,请从mongo shell 调用rs.status()方法,直到看到另一个成员已处于PRIMARY状态。

  • 按照升级 MongoDB 实例中的说明关闭原始主数据库并升级其实例。