升级到MongoDB的最新自我管理补丁版本
MongoDB 版本控制的形式为 X.Y.Z
,其中Z
是指修订/补丁编号。 修订版提供安全补丁、错误修复以及通常不包含任何破坏性变更 (breaking change)的新功能或已更改功能。始终升级到版本系列中的最新版本。
有关版本管理的详情,请参阅 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 的支持。
维护窗口
如果您的安装包括副本集,请在预定义的维护窗口期间计划升级。
Change Streams
从 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 之前,请务必备份所有数据。
使用此处描述的步骤分别升级每个mongod
和mongos
二进制文件。 升级二进制文件时,请使用升级 MongoDB 实例过程。
请按照以下步骤进行升级:
对于使用身份验证的部署,请先升级所有 MongoDB 驱动程序。要升级,请参阅驱动程序的文档。
升级分片集群,如升级分片集群中所述。
升级任何独立运行实例。请参阅升级 MongoDB 实例。
升级不属于分片集群的任何副本集,如升级副本集中所述。
升级 MongoDB 实例
使用操作系统的包管理工具和官方 MongoDB 包升级实例。这是首选方法。请参阅安装 MongoDB。
通过使用新的二进制文件替换现有二进制文件来升级实例。请参阅替换现有二进制文件。
在重新启动实例之前,对配置文件进行任何必要的更改。
替换现有二进制文件
重要
在升级 MongoDB 之前,请务必备份所有数据。
本节介绍如何通过替换现有二进制文件来升级 MongoDB。升级的首选方法是使用操作系统的软件包管理工具和 MongoDB 官方软件包,如安装 MongoDB 中所述。
要通过替换现有二进制文件升级 mongod
或 mongos
实例:
从MongoDB 下载页面下载最新 MongoDB 修订版的二进制文件,并将二进制文件存储在临时位置。 二进制文件作为压缩文件下载,可以解压缩到 MongoDB 安装所使用的目录结构。
关闭实例。
将现有 MongoDB 二进制文件替换为下载的二进制文件。
进行任何所需的配置文件更改。
重新启动实例。
升级副本集
要升级副本集,请单独升级每个节点,从节点开始,主节点结束。 在预定义的维护窗口期间规划升级。
重要
升级或降级副本集之前,请确保所有副本集节点都正在运行。否则,升级或降级操作将在所有节点启动后才会完成。
注意
从 MongoDB 4.0.7 开始, change stream 使用版本 1 v1
恢复令牌。 4.0.7 之前的 MongoDB 版本使用v0
恢复令牌或 BinData 恢复令牌。
从 MongoDB v1
升级到 MongoDB 4.0.7 或更高版本时,当连接到尚未更新的节点(即 只接受v0
令牌或 BinData)并失败。 在这种情况下,客户端必须等待升级完成才能恢复change stream。
升级从节点
分别升级每个从节点,如下所示:
按照升级 MongoDB 实例中的说明升级从节点的
mongod
二进制文件。升级从节点后,请等待从节点恢复到
SECONDARY
状态,然后再升级下一个实例。要检查成员状态,请在mongosh
中发出rs.status()
。从节点可能会短暂进入
STARTUP2
或RECOVERING
。这很正常。请务必等待从节点完全恢复到SECONDARY
,然后再继续升级。
升级主节点
对主节点降级,以启动正常的故障转移程序。使用以下其中一项:
mongosh
中的rs.stepDown()
辅助。replSetStepDown
数据库命令。
在故障转移期间,副本集无法接受写入。通常需要 10-20 秒。在预定义的维护窗口期间计划升级。
注意
对主节点降级优于直接关闭主节点。降级可以加快故障转移程序。
主节点降级后,从
mongosh
中调用rs.status()
方法,直到看到另一个节点处于PRIMARY
状态。按照升级 MongoDB 实例中的说明关闭原始主节点并升级其实例。
升级分片集群
在版本 3.4 中进行了更改:该过程适用于 6.0。 要对其他版本的 MongoDB 分片集群进行修订升级,请参阅相应版本的手册。
注意
要升级 6.0 分片集群:
按照禁用负载均衡器中的说明禁用集群的负载均衡器。
升级配置服务器。
要升级配置服务器副本集,请使用升级副本集中的操作步骤。
升级每个分片。
如果分片是副本集,请使用标题为升级副本集的程序升级分片。
如果分片是独立实例,请使用标题为升级 MongoDB 实例的程序升级分片。
升级配置服务器和分片后,按照
mongos
升级 MongoDB 实例中的说明升级每个实例。您可以按照任意顺序升级mongos
实例。重新启用负载均衡器,如启用负载均衡器中所述。