参考 > 发行说明 > MongoDB 3.6发布说明 > 降级3.6复制副本设置为3.4
在尝试任何降级之前,请熟悉本文档的内容。
升级到3.6后,如果需要降级,建议将其降级到3.4的最新修补程序版本。
可选,但推荐。 创建数据库的备份。
在降级二进制文件之前,必须降级功能部件兼容版本并删除与3.4或更早版本不兼容的所有3.6功能部件
,如下所述。只有featureCompatibilityVersion
将设置为时,才需要执行这些步骤
"3.6"
。
小费
setFeatureCompatibilityVersion
在进行初始同步时运行
命令将导致重新启动初始同步。ROLLBACK
或
RECOVERING
状态。将mongo
外壳连接到主服务器。
降级featureCompatibilityVersion
到"3.4"
。
该setFeatureCompatibilityVersion
命令执行对内部系统集合的写操作,并且是幂等的。如果由于某种原因该命令未能成功完成,请在主服务器上重试该命令。
为确保副本集的所有成员都反映更新的内容
featureCompatibilityVersion
,请连接到每个副本集成员并检查featureCompatibilityVersion
:
所有成员应返回的结果包括:
如果有任何成员返回featureCompatibilityVersion
包含version
值"3.6"
或targetVersion
字段的,请"3.4"
在继续操作之前等待该成员反映版本。
有关返回featureCompatibilityVersion
值的更多信息,请参见View FeatureCompatibilityVersion。
删除所有与3.4 不兼容的持久功能。例如,如果您定义了使用3.6查询功能(例如$jsonSchema
或)的
任何视图定义,文档验证器和部分索引过滤器,则$expr
必须将其删除。
警告
在继续降级过程之前,请确保所有副本集成员(包括延迟的副本集成员)均反映出先决条件更改。也就是说,featureCompatibilityVersion
在降级之前,请检查每个节点的
和并删除不兼容的功能。
使用软件包管理器或手动下载,可获得3.4系列的最新版本。如果使用程序包管理器,请为3.4二进制文件添加新的存储库,然后执行实际的降级过程。
升级到3.6后,如果需要降级,建议将其降级到3.4的最新修补程序版本。
降级副本集的每个辅助成员,一次降级一个:
注意
如果不执行干净关闭,则可能会导致错误,从而导致该mongod
过程无法启动。
强制终止该mongod
过程可能会导致结果不准确,db.collection.count()
并且
会导致db.stats()
下次mongod
重新启动该过程时启动时间延长。
无论您尝试mongod
通过命令行kill
或类似方式从命令行终止
进程,还是使用平台的初始化系统发出stop
命令(如或),都适用
。sudo systemctl stop mongod
sudo service mongod stop
将3.6二进制文件替换为3.4二进制文件。
开始3.4的mongod
过程。
等待成员恢复SECONDARY
状态,然后再降级下一个辅助节点。要检查成员的状态,请使用外壳程序中的rs.status()
方法
mongo
。
mongod
。¶当rs.status()
显示主节点已降级并且另一个成员已PRIMARY
进入状态时,请
彻底关闭前一个主节点,并用mongod
3.4二进制文件替换二进制文件并开始新过程。