【问题标题】:Upgrading older mongo database after unintentional mongo version upgrade在无意的 mongo 版本升级后升级旧的 mongo 数据库
【发布时间】:2018-07-01 02:01:11
【问题描述】:

mongodb包无意升级后(3.4.9 -> 3.6.1)有什么方法可以升级mongo数据库?

根据 mongo 文档,作为升级的 prerequisite,必须从 mongo cli 工具设置 featureCompatibilityVersion,但是,它需要一个正在运行的 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 archlinux


    【解决方案1】:

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

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

    【讨论】:

    • 我面临同样的问题。我不敢相信这种情况有多愚蠢,但我很欣赏你的解决方案。打算试一试,看看它是否有效。呃。
    • 你能解释一下吗。我遇到了同样的问题,但这个解决方案对我不起作用。有一个 Mongo 3.4 并将其升级(不注意)到没有标志的 3.6。所以实际上 Mongo 3.6 无法启动,因为没有设置标志。并且 3.4 无法启动,因为 db 文件是 3.6 格式...我尝试安装另一个 Mongo 3.4,将文件放入其中并启动“mongo --dbpath ”但它仍然无法正常工作错误(WiredTiger 错误 (-31802)...)
    • 任何通过这个运行的人,如果在将 db 文件移动到另一台服务器后无法启动 mongo,你也应该尝试这个:mongo --dbpath --repair我>
    【解决方案2】:

    运行mongod --repair 为我工作。

    【讨论】:

      【解决方案3】:

      这里有类似问题,无意中从4.2.1升级到4.4.3,然后mongodb无法启动..

      最终解决方案:

      1. 卸载(最新但无法使用的版本:4.4.3

      brew uninstall mongodb-community

      1. 重新安装,旧的但可以工作4.2.1

      brew install mongodb-community@4.2

      1. 运行
      • 现在:brew services run mongodb-community@4.2
      • 现在设置可启动:brew services start mongodb-community@4.2
      1. 检查状态

      brew services

      【讨论】:

        猜你喜欢
        • 2023-01-31
        • 1970-01-01
        • 2020-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-03
        • 1970-01-01
        • 2017-07-13
        相关资源
        最近更新 更多