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