Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

将副本集升级到8.0

在此页面上

  • 升级建议和清单
  • 先决条件
  • 下载 8.0 二进制文件
  • 升级程序
  • 其他升级程序

在升级到 MongoDB 8.0 之前,请熟悉本文档的内容,包括仔细查看先决条件。

以下步骤概述了升级副本集成员 mongod从版本7.0升级到8.0的过程。

如需有关升级到 8.0 的指导,MongoDB 专业服务提供主要版本升级支持,帮助您顺利过渡,不会中断您的 MongoDB 应用程序。

升级时,请考虑以下几点:

要将现有 MongoDB 部署升级到 8.0,您必须运行 7.0 系列版本。

要从 7.0 系列之前的版本升级,您必须连续升级主要版本,直到升级到 7.0 系列。例如,如果您运行的是 6.0 系列版本,则必须先升级到 7.0 版本,然后才能升级到 8.0。

在升级 MongoDB 之前,请检查您是否使用与 MongoDB 8.0 兼容的驱动程序。请查阅与您具体驱动程序相对应的驱动程序文档,以验证与 MongoDB 8.0 的兼容性。

在不兼容的驱动程序上运行的升级部署可能会遇到意外或未定义的行为。

在开始升级之前,请参阅 MongoDB 8.0 中的兼容性变更文档,以确保您的应用程序和部署与 MongoDB 8.0 兼容。在开始升级之前,请解决部署中的不兼容问题。

在升级 MongoDB 之前,请务必在临时环境中测试您的应用程序,然后再将升级部署到生产环境。

如果没有支持的帮助,您无法降级部署的二进制版本。

要学习;了解更多信息,请参阅将8.0降级至7.0 。

所有副本集节点必须运行7.0版本。 要从6.0系列及更早版本升级副本集集,请先将副本集的所有节点升级到最新的7.0系列发布,然后按照步骤从MongoDB 7.0升级到8 。 0 。

7.0 副本集必须将 featureCompatibilityVersion 设置为 "7.0"

要确保副本集的所有成员都将 featureCompatibilityVersion 设置为 "7.0",请连接到每个副本集成员并检查 featureCompatibilityVersion

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

所有成员都应返回包含 "featureCompatibilityVersion" : { "version" : "7.0" } 的结果。

要设置或更新 featureCompatibilityVersion,请在主节点上运行以下命令。大多数数据承载节点必须可用:

db.adminCommand( { setFeatureCompatibilityVersion: "7.0" } )

有关更多信息,请参阅 setFeatureCompatibilityVersion

通过发出 replSetGetStatus 命令,确保没有副本集成员处于 ROLLBACKRECOVERING 状态:

db.adminCommand( { replSetGetStatus: 1 } )

如果从 MongoDB aptyumdnfzypper 存储库安装 MongoDB,则应使用包管理器升级到 8.0。

请按照适用于您 Linux 系统的 8.0 版本安装说明进行操作。这将涉及为新版本添加存储库,然后执行实际的升级过程。

如果您尚未使用包管理器安装 MongoDB,则可以从 MongoDB 下载中心手动下载 MongoDB 二进制文件。

请参阅 8.0 安装说明了解更多信息。

可以使用“滚动”升级从 MongoDB 7.0 升级到 8.0,即在其他成员可用时单独升级各个成员,从而最大限度地减少停机时间。

1

要关闭 mongod 进程,请使用 mongosh 连接到副本集节点,并运行以下命令:

db.adminCommand( { shutdown: 1 } )
2

逐个升级副本集的从节点成员:

  1. 将 7.0 二进制文件替换为 8.0 二进制文件。

  2. 重新启动成员。

3

mongosh连接到主节点 (primary node in the replica set),并使用rs.stepDown()降级主节点 (primary node in the replica set)并强制选举新的主节点 (primary node in the replica set)。

4

rs.status() 显示主节点已降级,并且另一个成员已显示为 PRIMARY 状态时,升级已降级的主节点:

  1. 关闭降级主节点 (primary node in the replica set)节点,并将mongod二进制文件替换为8.0二进制文件。

  2. 重新启动成员。

5

此时,您可以运行 8.0 二进制文件,而不会启用与 7.0 不兼容的 8.0 功能

要启用这些 8.0 功能,请将功能兼容性版本 (fCV) 设置为 8.0。

提示

启用这些向后不兼容的功能可能会使降级过程变得复杂,因为在降级之前,您必须删除任何持续存在的向后不兼容的功能。

升级后,建议让部署在不启用这些功能的情况下稳定运行一段时间,以确保降级回老版本的可能性极小。当确信降级的可能性非常小时,请启用这些功能。

提示

确保没有正在进行任何初始同步。在初始同步过程中运行 setFeatureCompatibilityVersion 命令将导致重新启动初始同步。

在主节点上,运行 admin 数据库中的 setFeatureCompatibilityVersion 命令:

db.adminCommand( { setFeatureCompatibilityVersion: "8.0" } )

设置featureCompatibilityVersion (fCV):" 8.0 " 隐式执行replSetReconfig以将term字段添加到配置文档中,并阻塞,直到新配置传播到大多数副本集节点。

此命令必须执行对内部系统集合的写入。如果由于任何原因未成功完成该命令,则可以在主节点上安全地重试该命令,因为该操作是幂等的。

后退

独立运行的实例