【问题标题】:"Sync source had no feature compatibility version" error when adding MongoDB 3.6 member to 3.4 replica set将 MongoDB 3.6 成员添加到 3.4 副本集时出现“同步源没有功能兼容版本”错误
【发布时间】:2018-04-27 05:29:15
【问题描述】:

我正在尝试将集群从 MongoDB 3.4 迁移到 3.6。

添加使用 MongoDB 3.6 的新成员时,初始同步失败并出现以下错误:

同步源在 src/mongo/db/repl/replication_coordinator_impl.cpp 679 处没有功能兼容性版本文档

正如我所见,这是一个well-known error,适用于尝试从 3.2 迁移到 3.6 的用户。但是,就我而言,我正在尝试从 3.4(更具体地说是 3.4.14,正如 db.version() 在集群的每个实例上报告的那样)迁移到 3.6。由于 MongoDB 官方文档没有提到 3.5 版本,我不确定我应该做什么。

我做错了什么?

【问题讨论】:

  • 您绝对可以将副本集或分片集群从 MongoDB 3.4 升级到 3.6。请参阅与您的部署相关的upgrade guide。您收到的错误消息表明您在之前的升级中错过了prerequisite:副​​本集没有将 featureCompatibilityVersion 设置为 3.4。如果您从 3.4 之前的 MongoDB 版本升级并且尚未启用向后不兼容的功能,就会出现这种情况。
  • MongoDB 3.5(以及第二个组件为奇数的版本)在升级说明中未提及,因为它们是开发版本。见:MongoDB version numbers。 MongoDB 3.5 是 MongoDB 3.6 生产版本系列之前的开发版本系列。
  • @Stennie:就是这样。 featureCompatibilityVersion 没有设置,特别是因为集群是从 3.2 迁移过来的。您能否将您的 cmets 推广为答案,以便我接受?

标签: mongodb


【解决方案1】:

您绝对可以从 MongoDB 3.4 到 3.6 的 upgrade a replica setsharded 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,其最终升级步骤与enable backwards-incompatible 3.6 features 类似,将FCV 设置为“3.6”。

您可以使用以下方法检查当前的 FCV:

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

由于 MongoDB 官方文档没有提到 3.5 版本,我不确定我应该做什么。

MongoDB 3.5(以及第二个组件为奇数的版本)在升级说明中未提及,因为它们是开发版本(请参阅:MongoDB version numbers)。 MongoDB 3.5 是 MongoDB 3.6 生产版本系列之前的开发版本系列。

【讨论】:

    猜你喜欢
    • 2017-01-03
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2021-11-16
    • 2018-06-21
    相关资源
    最近更新 更多