On this page
升级到最新版本的 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。
- 驱动程序的文档。有关更多信息,请参见Drivers和Driver Compatibility页。
如果您的安装包括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 之前,请务必备份所有数据。
使用此处描述的过程分别升级每个mongod和mongos二进制文件。升级二进制文件时,请使用过程升级 MongoDB 实例。
请遵循以下升级过程:
对于使用身份验证的部署,请首先升级所有 MongoDB drivers。要升级,请参见驱动程序的文档以及Driver Compatibility页。
升级分片群集,如升级分片群集中所述。
升级任何独立实例。参见升级 MongoDB 实例。
如升级副本集所述,升级不属于分片群集的任何副本集。
升级 MongoDB 实例
使用 os 的程序包 Management 工具和官方的 MongoDB 程序包升级实例。这是首选方法。参见Install MongoDB。
通过用新的二进制文件替换现有的二进制文件来升级实例。参见替换现有的二进制文件。
替换现有的二进制文件
Important
升级 MongoDB 之前,请务必备份所有数据。
本节介绍如何通过替换现有二进制文件来升级 MongoDB。升级的首选方法是使用 os 的程序包 Management 工具和官方的 MongoDB 程序包,如Install MongoDB中所述。
要通过替换现有的二进制文件来升级mongod或mongos实例,请执行以下操作:
从MongoDB 下载页面下载最新的 MongoDB 版本的二进制文件,并将这些二进制文件存储在一个临时位置。这些二进制文件以 zipfile 的形式下载,这些文件解压缩到 MongoDB 安装所使用的目录结构中。
关闭实例。
用下载的二进制文件替换现有的 MongoDB 二进制文件。
重新启动实例。
升级分片群集
在版本 3.4 中更改:该过程适用于 3.6. 要对其他版本的 MongoDB 分片群集进行版本升级,请参阅手册的相应版本。
要升级 3.6 分片群集:
如禁用平衡器所述,禁用群集的平衡器。
要升级配置服务器副本集,请使用升级副本集中的过程。
升级每个碎片。
如果分片是副本集,请使用标题为升级副本集的过程升级分片。
如果分片是独立实例,请使用名为升级 MongoDB 实例的过程升级分片。
按照升级 MongoDB 实例中的说明升级每个mongos实例。您可以按任何 Sequences 升级mongos实例。
按照启用平衡器所述重新启用平衡器。
升级副本集
要升级副本集,请分别从secondaries到primary分别升级每个成员。在 sched 义的维护时段内计划升级。
Upgrade Secondaries
分别升级每个辅助节点,如下所示:
按照升级 MongoDB 实例中的说明升级辅助节点的mongod二进制文件。
升级辅助节点后,请 await 辅助节点恢复到
SECONDARY
状态,然后再升级下一个实例。要检查成员的状态,请在mongo shell 中发出rs.status()。
辅助节点可能会短暂进入STARTUP2
或RECOVERING
。这是正常的。在 continue 升级之前,请确保 await 辅助节点完全恢复到SECONDARY
。
升级主数据库
降级主数据库以启动正常的failover程序。使用以下之一:
mongo shell 中的rs.stepDown()助手。
replSetStepDown数据库命令。
在故障转移期间,该集不能接受写入。通常,这需要 10 到 20 秒。在 sched 义的维护时段内计划升级。
Note
降低主数据库比直接“关闭”主数据库更好。降级可加快故障转移过程。
主数据库降级后,请从mongo shell 调用rs.status()方法,直到看到另一个成员已处于
PRIMARY
状态。按照升级 MongoDB 实例中的说明关闭原始主数据库并升级其实例。