一个db的Mongorestore给我带来了麻烦

时间:2010-10-07 17:56:56

标签: mongodb

我是MongoDB的新手,我很难备份我的本地数据库并在我的服务器上恢复它。我在Mongo的网站上找到了链接:http://www.mongodb.org/display/DOCS/Import+Export+Tools但我仍然遇到了恢复问题。

当我进行备份时,我致电

mongodump --db Gen

然后我看到所有集合都在/bin/dump/Gen文件夹

中转储

我从本地复制粘贴到调用

的同一文件夹中的服务器
mongorestore --db Gen --drop --dbpath dump/Gen

但我得到以下内容: Error : root directory must be a dump of a single database when specifying a db name with --db

6 个答案:

答案 0 :(得分:44)

好的,我发现我做错了什么:

我在做

mongorestore --db Gen --drop --dbpath dump/Gen

但没有--dbpath它就可以了!

mongorestore --db Gen --drop dump/Gen

谢谢大家!

答案 1 :(得分:5)

我认为当您尝试移动它时,您的文件夹结构可能会变得混乱。例如,这对我有用:

$ ./mongodump --db Gen
$ ./mongorestore --db Gen --drop dump/Gen/

你能尝试不移动转储目录,还是从/ bin / dump / Gen恢复?

您指定的目录中应包含.bson文件,例如

$ ls /bin/dump/Gen
foo.bson  bar.bson  baz.bson

答案 2 :(得分:4)

这最终为我工作(mydb是我的数据库的名称):

mongorestore --drop -db mydb mydbbackup/mydb/

mongodump之后:

mongodump -d mydb -o mydbbackup

答案 3 :(得分:3)

对于不希望被错误“烦恼的人”的附加说明“在使用--db指定数据库名称时,根目录必须是单个数据库的转储”

指定--db且不指定--collection(还原整个数据库)时: - 给定路径必须是目录路径 - 目录不得包含除.bson或.json之外的任何其他文件。我花了一段时间才意识到隐藏的.svn文件夹(如果你使用SVN)会搞乱脚本

答案 4 :(得分:1)

它必须是转储目录中的任何其他目录。因此,首先删除目录,然后重新运行命令mongorestore -d db dump/db

答案 5 :(得分:-1)

示例:

./mongorestore -d db -c mycollection dump/db

会引发以下错误

ERROR: ERROR: root directory must be a dump of a single collection
ERROR:        when specifying a collection name with --collection

您可以删除-c选项以转发此错误.Beacuse dump / db指定数据库,但不指定集合。