在mongodb包意外升级(3.4.9 -> 3.6.1)后,有没有办法升级mongo数据库?
根据mongo文档,作为升级的prerequisite,必须从mongodb cli工具设置featureCompatibilityVersion,然而,该工具需要一个正在运行的mongo数据库守护进程,然而,如果mongodb包已经升级并且数据库没有设置featureCompatibilityVersion标志,该守护进程将不会运行。
我在ArchLinux上,我在IgnorePkg中有mongodb,但它的依赖boost-libs和wiredtiger无论如何都升级了。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相关的工具)?删除数据库并重新启动不是一个选项。
发布于 2018-01-23 14:59:29
我解决这个问题的方法是在一个系统上安装旧版本的mongodb,在这个系统上预打包是没有问题的(好吧,Windows10,尽管通常说这个包是用于Windows Server2008的),将数据库文件(/var/lib/mongodb的内容)复制到那里,使用--dbpath参数(mongod --dbpath /path/to/dbfiles)运行它,根据docs设置兼容性标志,最后将数据库文件复制回服务器。
我想知道一个更好的选择,但很高兴知道数据库文件可以很容易地传输到另一个系统,甚至另一个架构(虽然数据库相对简单和小)。
发布于 2021-08-01 02:42:17
运行mongod --repair对我很有效。
发布于 2021-01-22 14:24:55
这里有类似的问题,无意中从4.2.1升级到4.4.3,那么mongodb就无法启动..
最终可行的解决方案:
卸载
4.4.3)brew uninstall mongodb-community
重新安装
4.2.1brew install mongodb-community@4.2
brew services run mongodb-community@4.2brew services start mongodb-community@4.2brew services
https://stackoverflow.com/questions/48381581
复制相似问题