Docs 主页 → 开发应用程序 → MongoDB Manual
将独立运行版升级至 5.0
请熟读本文档的内容,包括彻底查看先决条件,然后再升级到 MongoDB 5.0。
以下步骤概述了将独立运行的 mongod
从版本 4.4 升级到 5.0 的过程。
如果您需要有关升级到5的指导。 0 、 MongoDB 专业服务提供主要版本升级支持,帮助确保 MongoDB 应用程序平稳过渡而不中断。
升级建议和清单
升级时,请考虑以下几点:
升级版本路径
要将现有 MongoDB 部署升级到 5.0,您必须运行 4.4 系列版本。
要从 4.4 系列之前的版本升级,您必须连续升级主要版本,直到升级到 4.4 系列。例如,如果您运行的是 4.2 系列,则必须先升级到 4.4,然后才能升级到 5.0。
检查驱动程序兼容性
在升级 MongoDB 之前,请检查您是否正在使用 MongoDB 5 。 0兼容驱动程序。请查阅特定驱动程序的驱动程序文档,验证与 MongoDB 5的兼容性。 0 。
在不兼容的驱动程序上运行的升级部署可能会遇到意外或未定义的行为。
准备
在开始升级之前,请参阅MongoDB 5.0 中的兼容性更改文档,以确保您的应用程序和部署与 MongoDB 5.0 兼容。在开始升级之前,请解决部署中的不兼容问题。
在升级 MongoDB 之前,请务必在临时环境中测试您的应用程序,然后再将升级部署到生产环境。
降级考虑因素
升级到5后。 0 ,如果需要降级,我们建议降级到4的最新补丁版本。 4 。
先决条件
在升级独立运行的 mongod
之前,请查看 5.0 性能注意事项,了解升级到 5.0 对性能的任何潜在影响。
确保 TTL 配置有效
确保 TTL 配置有效。升级之前,请删除或更正将 expireAfterSeconds
设置为 NaN
的任何 TTL 索引。在 MongoDB 5.0 及更高版本中,将 expireAfterSeconds
设置为 NaN
与将 expireAfterSeconds
设置为 0
具有相同的效果。如需了解详情,请参阅《设置为 NaN
时的 TTL expireAfterSeconds
行为》。
确认干净关机
特征兼容性版本
4.4 实例的 featureCompatibilityVersion
必须设置为 "4.4"
。要查看 featureCompatibilityVersion
:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
该操作返回的结果应包含 "featureCompatibilityVersion" : { "version" : "4.4" }
。
要设置或更新 featureCompatibilityVersion
,请运行以下命令:
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
有关更多信息,请参阅 setFeatureCompatibilityVersion
。
考虑转换为副本集
在升级之前,请考虑将独立运行部署转换为副本集。副本集是 MongoDB 的推荐部署配置。
下载 5.0 二进制文件
通过包管理器
如果您从 MongoDB apt
、yum
、dnf
或 zypper
存储库安装 MongoDB,则应使用包管理器升级到 5.0。
请按照适用于您的 Linux 系统的相应的 5.0 安装说明进行操作。这将涉及为新版本添加存储库,然后执行实际的升级过程。
手动
如果您尚未使用包管理器安装 MongoDB,则可以从MongoDB 下载中心手动下载 MongoDB 二进制文件。
请参阅 5.0 安装说明了解更多信息。
升级进程
警告
如果将 MongoDB 的现有实例升级到 MongoDB5 。0 。15 ,如果在fork: true
mongod.conf
文件中设置了 ,该实例可能无法启动。
升级问题会影响所有使用.deb
或.rpm
安装包的 MongoDB 实例。使用 tarball (.tgz
) 版本或其他软件包类型的安装不受影响。有关详细信息,请参阅 SERVER-74345 。
要删除fork: true
设置,请从系统终端运行以下命令:
systemctl stop mongod.service sed -i.bak '/fork: true/d' /etc/mongod.conf systemctl start mongod.service
删除设置后,第二个systemctl
命令将启动升级后的实例。
启用向后不兼容的 5.0 功能。
此时,您可以运行 5.0 二进制文件,而不使用与 4.4 不兼容的 5.0 功能。
要启用这些 5.0 功能,请将功能兼容性版本 (fCV
) 设置为 5.0。
提示
启用这些向后不兼容的功能可能会使降级过程变得复杂,因为在降级之前,您必须删除任何持续存在的向后不兼容的功能。
升级后,建议让部署在不启用这些功能的情况下稳定运行一段时间,以确保降级回老版本的可能性极小。当确信降级的可能性非常小时,请启用这些功能。
针对 admin
数据库运行 setFeatureCompatibilityVersion
命令:
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
此命令执行的必须是对内部系统集合的写入。如果由于任何原因该命令未能成功完成,您都可以安全地重试该命令,因为该操作是幂等的。
其他升级程序
若要升级副本集,请参阅将副本集升级到 5.0。
要升级分片集群,请参阅将分片集群升级到 5.0。