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

将独立运行版升级到8.0

在升级到 MongoDB 8.0 之前,请查看本文档,包括先决条件。

MongoDB 8.0 引入了较MongoDB 7.0 显着的性能改进,包括但不限于:

  • 读取吞吐量提高高达 36%。

  • 典型 Web 应用程序的性能提高高达 32%。

  • 复制期间并发写入速度提高高达 20%。

注意

性能提升的幅度可能会有所不同,具体取决于工作负载和数据库实例的配置。

要学习;了解更多信息,请参阅性能改进。

以下步骤概述了升级独立运行的mongod从版本7.0升级到8.0的过程。

If you need guidance on upgrading to 8.0, MongoDB professional services offer major version upgrade support to help ensure a smooth transition without interruption to your MongoDB application.

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

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

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

Before you upgrade MongoDB, check that you're using a MongoDB 8.0-compatible driver. Consult the driver documentation for your specific driver to verify compatibility with MongoDB 8.0.

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

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

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

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

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

7.0实例必须将 featureCompatibilityVersion设立为 "7.0"。要检查 featureCompatibilityVersion,运行以下命令:

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

该操作返回一个包含 "featureCompatibilityVersion" : { "version" : "7.0" } 的文档。

要设置或更新 featureCompatibilityVersion,请运行以下命令:

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

有关更多信息,请参阅 db.adminCommand() 和 setFeatureCompatibilityVersion。

在升级之前,请考虑将独立运行部署转换为副本集。副本集是 MongoDB 的推荐部署配置。

升级到MongoDB 8.0 时,如果您有任何不是时间序列集合的 system.buckets 集合,则可能需要在升级之前对这些集合进行 drop 或 rename 操作,具体取决于您的 8。0 补丁发布:

MongoDB 8.0.5 及更高版本

在升级之前,您无需删除不是时间序列集合的 system.buckets 集合。但是,您必须在完成升级后删除或重命名它们。

MongoDB 8.0.4 及更早版本

在升级之前,必须删除或重命名不是时间序列集合的 system.buckets 集合。在升级到版本 8.0.0 - 8.0.4 之前,所有 system.buckets 集合必须配置有效的 时间序列选项。

要确定是否有非时间序列集合的system.buckets 集合,请使用过滤的db.getCollectionInfos() 方法:

db.getCollectionInfos(
{
$and: [
{ name: { $regex: /^system\.buckets/ } },
{ 'options.timeseries': { $exists: false } }
]
}
)

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

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

If you have not installed MongoDB using a package manager, you can manually download the MongoDB binaries from the MongoDB Download Center.

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

1

To shut down the mongod process, use mongosh to connect to the instance and run the following command:

db.adminCommand( { shutdown: 1 } )
2

确保8.0系列二进制文件位于您的系统路径中。 要确认二进制版本,请运行以下命令:

mongod --version

命令输出显示8.0系列发布。

3

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

要启用这些 8.0 功能,设立特征兼容性版本(FCV) 设置为 8.0。如果升级到 7.0 或更高版本,还必须将 confirm设立为 true。

提示

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

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

针对 admin 数据库运行 setFeatureCompatibilityVersion 命令:

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

将 confirm 值设置为 true 可允许操作继续。如果省略 confirm 参数或将 confirm设立为 true 以外的值,则该命令将失败并返回有关修改特征兼容性版本的警告。该警告指出,升级或降级集群的FCV后,在没有支持协助的情况下,您将无法降级二进制版本。

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

如果 mongod 存在, MongoDB将返回错误代码。要解决升级问题,请参阅错误代码或自托管部署的退出代码和状态。

If you experience startup issues after you upgrade, contact MongoDB Support for assistance.