通常我不会问问题,但我已经筋疲力尽了,预计自己会为此苦苦挣扎一段时间。对于问题审阅者,我没有发现任何问题涉及我遇到问题的 Mongo 版本,也没有发现任何与仲裁节点相关的错误。
总结:
仲裁器从 v6 升级到 v7 时失败,因为featureCompabilityVersion
我读到过一个它不应该关心或使用的无效内容。
我是否遗漏了与仲裁节点的配置/升级有关的一些明显信息?
长版本:
我正在使用 Docker Compose 管理 Mongo 数据库的副本集,该副本集由 1 个主数据库、1 个辅助数据库和 1 个仲裁器组成。它们都使用映像,并具有卷来保存它们必须写入的任何数据。我的任务是使用Mongo 指令docker.io/bitnami/mongodb
将它们的映像从 v5 升级到 v7 。
从 v5 升级到 v6 很顺利,因为 v6 向后兼容,只需要更新镜像版本。要升级到 v7,我登录到主节点的管理数据库并运行,db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
然后db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1})
确认更改已生效。
我将 Compose 文件中的图像版本从 v6 更新为 v7,然后重新启动。主/辅助节点都很好,但仲裁器在关闭之前发出此错误,
升级问题:发现无效的 featureCompatibilityVersion 文档(错误:Location4926900:admin.system.version 中的 featureCompatibilityVersion 文档无效:{_id:“featureCompatibilityVersion”,版本:“5.0”}。请参阅https://docs.mongodb.com/master/release-notes/6.0-compatibility/#feature-compatibility。:: 导致原因:: 功能兼容性版本值“5.0”无效;预期为“6.0”或“6.3”或“7.0”。请参阅https://docs.mongodb.com/master/release-notes/6.0-compatibility/#feature-compatibility。 )。如果当前 featureCompatibilityVersion 低于 6.0,请参阅https://docs.mongodb.com/master/release-notes/6.0/#upgrade-procedures上的升级文档。
现在我读到仲裁器不应包含任何数据,并且仲裁器会忽略 FCV 以支持二进制文件报告的向后兼容性,如果属实,则应该是 v6,而不是错误状态的 v5。我尝试向仲裁器进行身份验证以在那里设置 FCV,但我得到了command setFeatureCompatibilityVersion requires authentication
。
我是否遗漏了与仲裁节点的配置/升级有关的一些明显信息?