对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

升级 8.3将副本集设置为 9.0

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

以下步骤概述了将副本集节点 mongod 从版本 8.3 升级到 9.0 的过程。

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

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

要将现有MongoDB 部署升级到 9.0,您必须运行8.3 或 8.0发布。

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

在升级MongoDB之前,请检查您是否使用与MongoDB9.0 兼容的驾驶员。请查阅特定驾驶员的驾驶员文档,验证与MongoDB.9 0的兼容性。

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

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

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

从MongoDB 8.3 开始,您可以将MongoDB版本降级到上一个次要版本或主要版本。

MongoDB 仅支持单版本降级。您无法降级到比当前版本落后多个版本的版本。

示例,您可以将 9.0 系列部署降级为 8.0 系列部署。但是,不支持将 8.0 系列部署进一步降级为 7.0 系列部署。

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

所有副本集节点都必须运行版本 8.3 或 8.0。要将副本集从 8.0升级,请参阅将 8.0 升级到 9.0 副本集。要从 7.0-series 及更早版本升级副本集,请先将副本集的所有节点升级到最新的 8.0-series发布,然后按照升级从MongoDB 8.3 至9.0。

8.3副本集必须将 featureCompatibilityVersion设立为 8.3。

为确保副本集的所有节点都将 featureCompatibilityVersion设立为 8.3,请连接到每个副本集节点并检查 featureCompatibilityVersion:

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

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

db.adminCommand( { setFeatureCompatibilityVersion: "8.3" , confirm: true } )

有关更多信息,请参阅 setFeatureCompatibilityVersion。

发出 replSetGetStatus 命令以确保没有副本集成员处于 ROLLBACK 或 RECOVERING 状态:

db.adminCommand( { replSetGetStatus: 1 } )

如果从 MongoDB apt、yum、dnf 或 zypper 存储库安装 MongoDB,则应使用包管理器升级到 9.0。

按照适用于Linux系统的相应9.0 安装说明进行操作。这需要为新发布添加存储库,然后执行实际的升级过程。

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

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

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

1

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

db.adminCommand( { shutdown: 1 } )
2

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

  1. 将 8.3 二进制文件替换为 9.0 二进制文件。

  2. 重新启动成员。

3

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

4

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

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

  2. 重新启动成员。

5

提示

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

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

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

要启用这些 9.0 功能,请将特征兼容性版本(FCV)设立为 9.0。您还必须将 confirm设立为 true。

提示

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

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

db.adminCommand( { setFeatureCompatibilityVersion: "9.0", confirm: true } )

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

此命令必须对内部系统集合执行写入。如果该命令未完成,您可以安全地在主节点 (primary node in the replica set)上重试该命令,因为该操作是幂等的。

如果升级后遇到初创企业问题,联系MongoDB支持部门寻求帮助。