哪个是升级 mongoDB 数据库的首选 Mongodump VS Mongoexport?

Which one is the preferred choice Mongodump VS Mongoexport for upgrading mongoDB database?

我的客户使用 mongoDB 2.4,由于此版本存在一些限制,我们为他们提供了升级到最新稳定版 mongoDB 3.4.5 的选项。

初步测试使用 MongoDB 2.4 中的 mongodump Mongodb 3.4.5 中的 mongorestore 工作正常,因为我可以看到所有导入的集合。

在文档 mongorestore 中,没有任何地方提到它可以从旧版本 mongoDB 恢复转储。

由于我们无法使用 mongorestore ,我可以使用“mongoexport”以旧 mongoDB 2.4 的 csv/json 格式导出数据,然后导入到较新版本的 mongoDB 3.4 ?

使用 "mongoexport/mongoimport" 而不是 "mongodump" 升级到更新版本的 mongoDB 3.4 可能会出现什么问题?

注意:我将完全删除旧版本的 mongoDB 并安装新版本的 mongoDB

这两种工具(默认情况下)都会遍历 _id 索引以获取数据,然后将其写出到磁盘。所以,是的,这两种工具都会同样影响您的工作集,这就是为什么我通常建议 运行 使用它们来对抗次要工具(如果可能,最好是隐藏的次要工具)。 我假设您正在寻找与 mongoexport 中的 --fields 选项等效的 mongodump,以仅转储特定字段。查询选项可用于过滤结果,但不能与投影一起使用(到 select 返回的字段)- 这是一个正在 TOOLS-28 中跟踪但尚未安排的功能请求。

Mongodump 和 Mongorestore 更好,因为:

  1. 他们运行更快
  2. 它们比 mongoexport 和 mongoimport 更好地保留了一些数据格式,因为数据不会从 BSON 转换为 JSON 并返回。

MongoDB Docs on MongoImport所述:

WARNING
Avoid using mongoimport and mongoexport for full instance production backups. They do not reliably preserve all rich BSON data types, because JSON can only represent a subset of the types supported by BSON. Use mongodump and mongorestore as described in MongoDB Backup Methods for this kind of functionality.

另外,使用mongorestore升级要格外小心;仅仅因为数据恢复如初,并不意味着 MongoDB 的新版本可以使用它。例如,在 v2.4 之后对授权模型进行了一系列更改,这意味着您 must first upgrade to v2.6, and only then to v3.0. There are similar structural changes at each major version, so it is recommended that you upgrade stepwise, one major version at a time

  1. v2.4 -> v2.6
  2. v2.6 -> v3.0
  3. v3.0 -> v3.2
  4. v3.2 -> v3.4

http://www.dba86.com/docs/mongo/2.4/core/import-export.html开始,2.4版本开始支持mongoexport。因此,它应该是正确的工具。但文档中仍然有警告信息。

Warning: Avoid using mongoimport and mongoexport for full instance production backups. They do not reliably preserve all rich BSON data types, because JSON can only represent a subset of the types supported by BSON. Use mongodump and mongorestore as described in MongoDB Backup Methods for this kind of functionality.

希望对您有所帮助!!!!