降级 3.6 复制副本设置为 3.4

在本页面

在尝试任何降级之前,请熟悉本文档的内容。

Downgrade Path

升级到 3.6 后,如果需要降级,建议将其降级到 3.4 的最新修补程序版本。

Create Backup

*可选,但推荐.*创建数据库备份。

Prerequisites

在降级二进制文件之前,必须降级功能部件兼容性版本,并删除所有具有 3.4 或更早版本的 3.6 功能incompatible,如下所述。仅当将featureCompatibilityVersion设置为"3.6"时,才需要执行这些步骤。

1.降级功能兼容版本

Tip

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

setFeatureCompatibilityVersion命令执行对内部系统集合的写操作,并且是幂等的。如果由于某种原因该命令未能成功完成,请在主服务器上重试该命令。

为了确保副本集的所有成员都反映更新的featureCompatibilityVersion,请连接到每个副本集成员并检查featureCompatibilityVersion

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

所有成员应返回的结果包括:

"featureCompatibilityVersion" : { "version" : "3.4" }

如果任何成员返回的featureCompatibilityVersion包含"3.6"version值或targetVersion字段,请在 continue 操作之前 await 该成员反映版本"3.4"

有关返回的featureCompatibilityVersion值的更多信息,请参见View FeatureCompatibilityVersion

2.删除向后不兼容的持久功能

用 3.4 删除所有incompatible的持久功能。例如,如果定义了使用 3.6 查询功能(例如$jsonSchema$expr)的任何视图定义,文档验证器和部分索引过滤器,则必须将其删除。

Procedure

Warning

在 continue 降级过程之前,请确保所有副本集成员(包括延迟的副本集成员)均反映出先决条件更改。也就是说,在降级之前,请检查每个节点的featureCompatibilityVersion并删除不兼容的功能。

下载最新的 3.4 二进制文件。

使用软件包 Management 器或手动下载,可获得 3.4 系列中的最新版本。如果使用程序包 Management 器,请为 3.4 二进制文件添加新的存储库,然后执行实际的降级过程。

升级到 3.6 后,如果需要降级,建议将其降级到 3.4 的最新修补程序版本。

降级副本集的辅助成员。

降级副本集的每个secondary成员,一次降级:

Note

如果您不执行干净关闭,则可能会导致错误,导致无法启动mongod进程。

强制终止mongod进程可能会导致db.collection.count()db.stats()的结果不正确,以及延长下次重新启动mongod进程的启动时间。

无论您尝试通过kill或类似命令从命令行终止mongod进程,还是使用平台的初始化系统发出stop命令(如sudo systemctl stop mongodsudo service mongod stop),都适用。

降级初级。

mongoShell 程序中使用rs.stepDown()来降低primary并强制执行正常的failover过程。

rs.stepDown()

rs.stepDown()加快了故障转移过程,比直接关闭主数据库更可取。

替换并重新启动以前的主要 mongod。

rs.status()显示主要数据库已降级且另一个成员已处于PRIMARY状态时,则使用前一个主要数据库的执行彻底关闭并将mongod二进制文件替换为 3.4 二进制文件并开始新过程。

首页