2017-03-06 34 views
0

我使用WiredTiger从MongoDB v3.2.10安装中获得/ data/db文件。我如何在ubuntu上运行MongoDB v2.4.9,使其可以在/ data/db中使用相同的数据文件?我有复制/数据/分贝到新的mongodb目录,但它没有奏效。将mongodb从v3.2.10降级到v2.4.9,保留相同的数据文件

+1

你正在安装哪个新的db版本?旧版本是什么? – Astro

+0

我的旧版本是3.2.10,新版本是2.4.9 – suoyong

+0

你从3.2.10降级到2.4.9? – Astro

回答

1

要导入数据路径,可以在初始化dbpath标志时将其传递给mongodb守护进程。例如:

mongod --dbpath /data/db 

如果你想恢复以前的MongoDB的转储文件,您可以使用mongorestore选项。例如:

mongorestore --db yourDB /data/db 

这会将/数据/ DB恢复到一个名为yourDB

希望我的回答对您有所帮助新的数据库。

+0

感谢您的快速回复。当我按照你的建议mongorestore键入命令--db yourDB/data/db时,它会提示'不知道如何处理文件*******.wt';但是myDB中还有两个收集存储和system.indexes。但是,我无法找到我的数据,谢谢。 – suoyong

+0

@suoyong如果您的文件以_.wt_结尾,那么[WiredTiger存储引擎数据文件](https://docs.mongodb.com/manual/core/wiredtiger/),而不是[mongodump]中的BSON文件( https://docs.mongodb.com/manual/reference/program/mongodump/)。 –

0

否:文件不兼容,因为它们来自不同的存储引擎。

您的v.3.2安装与WiredTiger storage engine一起运行;这就是为什么您的数据文件具有.wt扩展名。这storage engine只是introduced in MongoDB v3.0;在此之前,唯一可用的存储引擎是MMAPv1

所以你的MongoDB v2.4.9只能运行MMAPv1数据文件;当你给它WiredTiger数据文件时,它不知道如何处理它们并失败。

如果有降级,那么你将需要使用mongodump作为数据从一个存储引擎到另一个转换的一部分:

  1. 执行MongoDB v3.2.10与WiredTiger数据文件
  2. 运行mongodump以产生整个数据库的BSON转储。
  3. 安装MongoDB的v3.2.10
  4. 安装MongoDB的v2.4.9
  5. 运行mongorestore从BSON文件中的数据导入到MMAPv1的数据存储引擎。