将独立机型升级至 4.2
以下步骤概述了将独立mongod
从4.0版本升级到4.2的过程。
重要:
在尝试任何升级之前,请熟悉本文档的内容。
如果您需要升级到4.2的指导,MongoDB专业服务提供主要版本升级支持,以帮助确保顺利过渡到MongoDB应用程序而不中断。
升级建议和核对清单
升级时,请考虑以下几点:
升级版本路径
要将现有的MongoDB部署升级到4.2,您必须运行4.0系列版本。
要从4.0系列之前的版本升级,您必须先后升级主要版本,直到升级到4.0系列。例如,如果您运行的是3.6系列,则必须先升级到4.0,然后才能升级到4.2。
检查驱动程序兼容性
在升级MongoDB之前,请检查您是否使用的是与MongoDB 4.2兼容的驱动程序。咨询驱动程序文档供您的特定驱动程序验证与MongoDB 4.2的兼容性。
在不兼容驱动程序上运行的升级部署可能会遇到意外或未定义的行为。
准备工作
在开始升级之前,请参阅MongoDB 4.2中的兼容性更改文档,以确保您的应用程序和部署与MongoDB 4.2兼容。在开始升级之前,解决部署中的不兼容性。
在升级MongoDB之前,在将升级部署到生产环境之前,请务必在分期环境中测试您的应用程序。
降级注意事项
一旦升级到4.2,如果您需要降级,我们建议降级到4.0的最新补丁版本。
先决条件
MMAPv1到WiredTiger存储引擎
MongoDB 4.2取消了对已弃用的MMAPv1存储引擎的支持。
如果您的4.0部署使用MMAPv1,则在升级到MongoDB 4.2之前,您必须将4.0部署更改为WiredTiger存储引擎。有关详细信息,请参阅将独立更改为WiredTiger。
查看当前配置
使用MongoDB 4.2,mongod
和mongos
进程将不会从MMAPv1特定配置选项开始。运行WiredTiger的先前版本的MongoDB忽略了MMAPv1配置选项(如果指定)。使用MongoDB 4.2,您必须从配置中删除这些。
功能兼容性版本
4.0实例必须将 featureCompatibilityVersion
设置为4.0
。要检查featureCompatibilityVersion
:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
该操作应返回一个包含"featureCompatibilityVersion" : { "version" : "4.0" }
的结果。
要设置或更新featureCompatibilityVersion
,请运行以下命令:
db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )
有关更多信息,请参阅setFeatureCompatibilityVersion
。
下载4.2 二进制文件
通过软件包管理器
如果您从MongoDB apt
、yum
、dnf
或zypper
存储库安装了MongoDB,则应使用软件包管理器升级到4.2。
按照适用于Linux系统的相应4.2安装说明进行操作。这将涉及为新版本添加一个存储库,然后执行实际的升级过程。
手动
如果您尚未使用软件包管理器安装MongoDB,您可以手动从MongoDB下载中心。
有关更多信息,请参阅4.2安装说明。
升级流程
1、将现有的4.0二进制文件替换为4.2二进制文件。
关闭您的mongod
实例。将现有的二进制文件替换为4.2mongod
二进制文件。
2、启用向后不兼容的4.2功能。
此时,您可以在没有与4.0不兼容的4.2功能的情况下运行4.2二进制文件。
要启用这些4.2功能,请将功能兼容性版本(FCV
)设置为4.2。
提示:
启用这些向后不兼容的功能可能会使降级过程复杂化,因为在降级之前,您必须删除任何持续存在的向后不兼容的功能。
建议在升级后,在烧毁期间允许您的部署在不启用这些功能的情况下运行,以确保降级的可能性最小。当您确信降级的可能性很小时,请启用这些功能。
对admin
数据库运行setFeatureCompatibilityVersion
命令:
db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
此命令必须对内部系统集合执行写入。如果由于任何原因命令未能成功完成,您可以安全地重试该命令,因为该操作是幂等的。
升级后
TLS
选项替换已弃用的SSL
选项
从MongoDB 4.2开始,MongoDB不再支持mongod、mongos和mongo shell的SSL选项以及相应的net.ssl
Options 配置文件选项。为了避免出现不支持消息,请对mongod、mongos和mongo使用新的TLS选项。
- 对于命令行TLS选项,请参考mongod, mongos和mongo shell页面。
- 有关相应的
mongod
和mongos
配置文件选项,请参阅配置文件页面。 - 有关连接字符串
tls
选项,请参阅连接字符串页面。
4.2+兼容驱动程序默认重试写入
与MongoDB 4.2及更高版本兼容的驱动程序默认启用可重试写入。较早的驱动程序需要retryWrites=true
选项。在使用与MongoDB 4.2及更高版本兼容的驱动程序的应用程序中,可以省略TheretryWritesretryWrites=true
选项。
要禁用可重试写入,使用与MongoDB 4.2及更高版本兼容的驱动程序的应用程序必须在连接字符串中包含retryWrites=false
。
其他升级程序
- 要升级副本集,请参阅将副本集升级到4.2。
- 要升级分片集群,请参阅将分片集群升级到4.2。