我尝试将群集从MongoDB 3.4迁移到3.6。
添加使用MongoDB 3.6的新成员时,初始同步失败,并显示以下错误:
同步源在src / mongo / db / repl / replication_coordinator_impl.cpp上没有功能兼容版本文档679
正如我所看到的,对于那些尝试从3.2迁移到3.6的人来说,这是well-known error。但是,在我的情况下,我尝试从3.4(3.4.14更具体,在db.version()
报告的每个群集实例上)迁移到3.6。由于MongoDB官方文档没有提及版本3.5,我不确定我应该做什么。
我做错了什么?
答案 0 :(得分:1)
你绝对可以从MongoDB 3.4到3.6 upgrade a replica set或sharded cluster。目前仅在相邻主要版本之间支持升级,因此在升级到MongoDB 3.6之前,您需要完成对MongoDB 3.4的升级。
同步来源没有功能兼容版本文档
此错误消息表示您已错过先前升级的先决条件:副本集未将featureCompatibilityVersion
设置为3.4。如果您之前从早于3.4版本的MongoDB升级并且尚未启用向后兼容的功能,则会出现这种情况。
在MongoDB 3.4中添加了功能兼容性版本(FCV)设置,以控制可能使降级过程复杂化的backwards-incompatible data features。例如,MongoDB 3.4添加了视图,其他索引格式(支持排序规则和区分大小写的索引)以及新的Decimal BSON类型。
升级到3.4并确认降级的可能性很小后,应使用以下方式设置FCV:
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
这是一个prerequisite to upgrading to MongoDB 3.6,它通过将FCV设置为" 3.6"来与enable backwards-incompatible 3.6 features进行类似的最终升级步骤。
您可以使用以下方式检查当前的FCV:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
由于MongoDB官方文档没有提及版本3.5,我不确定我应该做什么。
MongoDB 3.5(以及第二个组件为奇数的版本)在升级说明中未引用,因为它们是开发版本(请参阅:MongoDB version numbers)。 MongoDB 3.5是MongoDB 3.6产品发布系列的开发版本系列。