【问题标题】:how to restore a collection or collections in mongodb from an archive file?如何从存档文件中恢复 mongodb 中的一个或多个集合?
【发布时间】:2017-05-28 12:22:44
【问题描述】:

我通过以下命令在存档文件中创建了转储:

mongodump --archive=newcollection.1.archive --db neel --collection newcollection

使用 mongorestore 恢复时出现错误:只有在从 BSON 文件恢复时才应使用 --db 和 --collection 参数。

我从 [https://docs.mongodb.com/manual/reference/program/mongorestore/#examples][1] 获得语法。

我触发了以下命令:

mongorestore --archive=newcollection.1.archive  --db backup2.

【问题讨论】:

  • 从存档恢复时不能使用 --db 参数,只需使用 mongorestore --archive=newcollection.1.archive
  • 然后我会得到重复键错误
  • 而且我想恢复一些指定数据库中的数据
  • 你的意思是说我不能从存档文件恢复到其他数据库?
  • 从 mongodb 3.4 开始,是的。一个问题已解决,请参阅jira.mongodb.org/browse/TOOLS-1073

标签: mongodb mongodump mongorestore


【解决方案1】:

使用 --nsFrom 和 --nsTo

参见示例:

mongodump -h foo.com:27017 --db source_db_name --gzip --archive | mongorestore --drop -vvvvvv -h bar.com:27017 --nsFrom source_db_name.collection_name --nsTo destination_db_name.* --gzip --archive

nsFrom 和 nsTo 的格式是 database_name.collection_name,您可以使用通配符(就像我为 destination_db_name.* 所做的一样)

more info

【讨论】:

  • 文档中的示例给了我E11000 duplicate key error collection: db.collection index: _id_ dup key 错误。您的回答提示我删除 --nsFrom 和 --nsTo 中的引号,然后错误就消失了。
【解决方案2】:
mongorestore  --archive=<filename>.archive

【讨论】:

    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 2016-08-20
    • 2023-04-04
    相关资源
    最近更新 更多