gpt4 book ai didi

mongodb - 在意外的 mongo 版本升级后升级旧的 mongo 数据库

转载 作者:可可西里 更新时间:2023-11-01 09:38:56 30 4
gpt4 key购买 nike

在无意中升级了 mongodb 包(3.4.9 -> 3.6.1)后,有没有办法升级 mongo 数据库?

根据 mongo 文档,作为 prerequisite在升级过程中,featureCompatibilityVersion 必须通过 mongo cli 工具设置,然而,它需要一个正在运行的 mongod 数据库守护进程,但是,如果 mongodb 包已经升级并且数据库未设置 featureCompatibilityVersion 标志,则不会运行。

我在 ArchLinux 上,我在 IgnorePkg 中有 mongodb,但它的依赖项 boost-libswiredtiger 无论如何都升级了。在 pacman 缓存已经被清除后,我自己编译了旧版本的包,但是运行 mongodb 总是失败并出现这个错误:

unsupported WiredTiger file version: this build  only supports major/minor versions up to 1/0,  and the file is version 2/0: WT_ERROR: non-specific WiredTiger error

我不知道这到底是什么意思(有问题的wiredtiger版本是2.9.3-1,升级后的版本是2.9.3.20171205-2)。

看来我既不能降级也不能升级...

如果没有正在运行的数据库,其他 cli 工具(例如 mongodump)也不会运行,是否有任何其他可能性(一些 wiredtiger 相关工具)?删除数据库并重新开始不是一种选择。

最佳答案

我通过在预先打包的系统上安装旧版本的 mongodb 解决了这个问题(好吧,Windows 10,尽管官方声明该包适用于 Windows Server 2008) ,将数据库文件(/var/lib/mongodb 的内容)复制到那里,使用 --dbpath param (mongod --dbpath/path/to/dbfiles),根据 docs 设置兼容性标志最后将数据库文件复制回服务器。

想知道一个更好的选择,但很高兴知道 db 文件很容易转移到另一个系统,甚至是另一个架构(虽然 db 相对简单和小)。

关于mongodb - 在意外的 mongo 版本升级后升级旧的 mongo 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48381581/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com