我正在尝试将集群从 MongoDB 3.4 迁移到 3.6。
添加使用 MongoDB 3.6 的新成员时,初始同步失败并出现以下错误:
同步源在 src/mongo/db/repl/replication_coordinator_impl.cpp 679 处没有功能兼容性版本文档
正如我所看到的,这是一个众所周知的错误对于那些尝试从 3.2 迁移到 3.6 的人。然而,就我而言,我正在尝试从 3.4 迁移(更具体地说,如 3.4.14 所示)db.version()
在集群的每个实例上)到 3.6。由于 MongoDB 官方文档没有提及 3.5 版本,我不确定我应该做什么。
我究竟做错了什么?
你绝对可以升级副本集 or 分片集群从 MongoDB 3.4 到 3.6。目前仅支持相邻主要版本之间的升级,因此在升级到 MongoDB 3.6 之前,您需要完成到 MongoDB 3.4 的升级。
同步源没有功能兼容版本文档
此错误消息表明您在之前的升级中错过了一个先决条件:副本集没有featureCompatibilityVersion
设置为 3.4。如果您之前从 3.4 之前的 MongoDB 版本升级并且尚未启用向后不兼容的功能,就会出现这种情况。
MongoDB 3.4 中添加了功能兼容性版本 (FCV) 设置,以提供对启用的控制向后不兼容的数据功能这可能会使降级过程变得复杂。例如,MongoDB 3.4 添加了视图、附加索引格式(支持排序规则和区分大小写的索引)以及新的 Decimal BSON 类型。
升级到 3.4 并确认降级的可能性很小后,应使用以下方法设置 FCV:
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
这是一个升级到 MongoDB 3.6 的先决条件其具有类似的最终升级步骤启用向后不兼容的 3.6 功能将 FCV 设置为“3.6”。
您可以使用以下方法检查当前的 FCV:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
由于 MongoDB 官方文档没有提及 3.5 版本,我不确定我应该做什么。
升级说明中未提及 MongoDB 3.5(以及第二个组件为奇数的版本),因为它们是开发版本(请参阅:MongoDB 版本号)。 MongoDB 3.5 是 MongoDB 3.6 生产版本系列之前的开发版本系列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)