Docs 主页 → 开发应用程序 → MongoDB Manual
将副本集升级至 6.0
使用本教程从 MongoDB 5.0 升级到 MongoDB 6.0。要升级到同一版本系列中的新补丁版本,请参阅升级到 MongoDB 的最新补丁版本。
请熟读本文档的内容,包括仔细查看先决条件,然后再升级到 MongoDB 6.0。
以下步骤概述了将副本集节点 mongod
从版本 5.0 升级到 6.0 的过程。
如果您需要有关升级到6的指导。 0 、 MongoDB 专业服务提供主要版本升级支持,帮助确保 MongoDB 应用程序平稳过渡而不中断。
升级建议和清单
升级时,请考虑以下几点:
升级版本路径
要将现有 MongoDB 部署升级到 6.0,您正在运行的必须是 5.0 系列版本。
要从 5.0 系列之前的版本升级,您必须不断升级主要版本,直至 5.0 系列版本。例如,如果您运行的是 4.4 系列版本,则必须先升级到 5.0 版本,然后才能升级到 6.0。
检查驱动程序兼容性
在升级 MongoDB 之前,请检查您是否正在使用 MongoDB 6 。 0兼容驱动程序。请查阅特定驱动程序的驱动程序文档,验证与 MongoDB 6的兼容性。 0 。
在不兼容的驱动程序上运行的升级部署可能会遇到意外或未定义的行为。
准备
在开始升级之前,请参阅 MongoDB 6.0 中的兼容性更改文档,以确保您的应用程序和部署与 MongoDB 6.0 兼容。在开始升级之前,请解决部署中的不兼容问题。
在升级 MongoDB 之前,请务必在临时环境中测试您的应用程序,然后再将升级部署到生产环境。
降级考虑因素
从 MongoDB 7.0 开始,如果没有支持人员的帮助,您无法降级部署的二进制版本。
要了解详情,请参阅《将 7.0 降级至 6.0》。
先决条件
所有成员版本
所有副本集节点必须运行 5.0 版本。要从 4.4 系列及更早版本升级副本集,请先将副本集的所有节点升级到最新的 5.0 系列版本,然后按照步骤从 MongoDB 5.0 升级到 6.0。
特征兼容性版本
5.0 副本集必须将 featureCompatibilityVersion
设置为 "5.0"
。
要确保副本集的所有成员都将 featureCompatibilityVersion
设置为 "5.0"
,请连接到每个副本集成员并检查 featureCompatibilityVersion
:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
所有成员都应返回包含 "featureCompatibilityVersion" : { "version" : "5.0" }
的结果。
要设置或更新 featureCompatibilityVersion
,请在主节点上运行以下命令。大多数数据承载节点必须可用:
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
有关更多信息,请参阅 setFeatureCompatibilityVersion
。
副本集成员状态
通过发出 replSetGetStatus
命令,确保没有副本集成员处于 ROLLBACK
或 RECOVERING
状态:
db.adminCommand( { replSetGetStatus: 1 } )
下载 6.0 二进制文件
通过包管理器
如果您从 MongoDB apt
、yum
、dnf
或 zypper
存储库安装 MongoDB,则应使用软件包管理器升级到 6.0。
请按照适用于您 Linux 系统的 6.0 版本安装说明进行操作。这将涉及为新版本添加存储库,然后执行实际的升级过程。
手动
如果您尚未使用包管理器安装 MongoDB,则可以从MongoDB 下载中心手动下载 MongoDB 二进制文件。
请参阅 6.0 版本安装说明了解更多信息。
升级程序
您可以使用“滚动”升级从 MongoDB 5.0 升级到 6.0,即在其他节点可用时单独升级各个节点,从而最大限度地减少停机时间。
升级副本集的从节点成员。
逐个升级副本集的从节点成员:
将 5.0 版本的二进制文件替换为 6.0 版本的二进制文件。
重新启动成员。
降级副本集主节点。
将mongosh
连接到主节点,并使用rs.stepDown()
降级主节点并强制选举新的主节点。
升级主节点。
当 rs.status()
显示主节点已降级,并且另一个成员已显示为 PRIMARY
状态时,升级已降级的主节点:
关闭降级主节点,并用 6.0 二进制文件替换
mongod
二进制文件。重新启动成员。
启用向后不兼容的 6.0 功能。
此时,您可以运行 6.0 二进制文件,而不会启用 6.0 版本中与 5.0 不兼容的功能。
要启用这些 6.0 版本的功能,请将功能兼容性版本号 (fCV
) 设置为 6.0。
提示
启用这些向后不兼容的功能可能会使降级过程变得复杂,因为在降级之前,您必须删除任何持续存在的向后不兼容的功能。
升级后,建议让部署在不启用这些功能的情况下稳定运行一段时间,以确保降级回老版本的可能性极小。当确信降级的可能性非常小时,请启用这些功能。
提示
确保没有正在进行任何初始同步。在初始同步过程中运行 setFeatureCompatibilityVersion
命令将导致重新启动初始同步。
在主节点上,运行 admin
数据库中的 setFeatureCompatibilityVersion
命令:
db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
设置 featureCompatibilityVersion (fCV) : "6.0" 隐式执行 replSetReconfig
将 term
字段添加到配置文档中并阻塞直到新配置传播到多数副本集节点。
此命令必须执行对内部系统集合的写入。如果由于任何原因未成功完成该命令,则可以在主节点上安全地重试该命令,因为该操作是幂等的。
其他升级程序
若要升级独立运行的实例,请参阅将独立运行的实例升级到 6.0 版本。
要升级分片集群,请参阅将分片集群升级到 6.0 版本。