首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意外升级mongo版本后升级旧版mongo数据库

意外升级mongo版本后升级旧版mongo数据库
EN

Stack Overflow用户
提问于 2018-01-22 20:25:15
回答 3查看 6.7K关注 0票数 3

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

根据mongo文档,作为升级的prerequisite,必须从mongodb cli工具设置featureCompatibilityVersion,然而,该工具需要一个正在运行的mongo数据库守护进程,然而,如果mongodb包已经升级并且数据库没有设置featureCompatibilityVersion标志,该守护进程将不会运行。

我在ArchLinux上,我在IgnorePkg中有mongodb,但它的依赖boost-libswiredtiger无论如何都升级了。pacman缓存已经被清除,我自己编译了旧版本的包,但运行mongodb仍然失败,并显示以下错误:

代码语言:javascript
复制
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相关的工具)?删除数据库并重新启动不是一个选项。

EN

回答 3

Stack Overflow用户

发布于 2018-01-23 14:59:29

我解决这个问题的方法是在一个系统上安装旧版本的mongodb,在这个系统上预打包是没有问题的(好吧,Windows10,尽管通常说这个包是用于Windows Server2008的),将数据库文件(/var/lib/mongodb的内容)复制到那里,使用--dbpath参数(mongod --dbpath /path/to/dbfiles)运行它,根据docs设置兼容性标志,最后将数据库文件复制回服务器。

我想知道一个更好的选择,但很高兴知道数据库文件可以很容易地传输到另一个系统,甚至另一个架构(虽然数据库相对简单和小)。

票数 4
EN

Stack Overflow用户

发布于 2021-08-01 02:42:17

运行mongod --repair对我很有效。

票数 1
EN

Stack Overflow用户

发布于 2021-01-22 14:24:55

这里有类似的问题,无意中从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. run
  • for now:brew services run mongodb-community@4.2
  • for now和set bootable:brew services start mongodb-community@4.2
  1. check status

brew services

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48381581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档