Mongorestore БД вызывает у меня неприятности - PullRequest
37 голосов
/ 07 октября 2010

Я новичок в 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 ]

44 голосов
/ 08 октября 2010

Хорошо, я понимаю, что я делаю неправильно:

Я делал

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

Но без --dbpath все работает просто отлично!

mongorestore --db Gen --drop dump/Gen

Спасибо всем!

5 голосов
/ 08 октября 2010

Я думаю, что ваша структура папок может быть испорчена, когда вы пытаетесь ее переместить.Например, это работает для меня:

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

Можете ли вы попробовать не перемещать каталог дампа, а восстанавливать из / bin / dump / Gen?

В указанном вами каталоге должны быть файлы .bson, например,

$ ls /bin/dump/Gen
foo.bson  bar.bson  baz.bson
4 голосов
/ 19 сентября 2014

Вот что у меня получилось (mydb - это имя моей базы данных):

mongorestore --drop -db mydb mydbbackup/mydb/

После моего mongodump:

mongodump -d mydb -o mydbbackup
3 голосов
/ 16 ноября 2012

Дополнительное примечание для тех, кто не хочет раздражаться из-за ошибки "корневой каталог должен быть дампом одной базы данных при указании имени БД с помощью --db"

При указании --db и без --collection (восстановление всей базы данных): - указанный путь должен быть путем к каталогу - каталог не должен содержать никаких других файлов, кроме .bson или .json. Мне потребовалось некоторое время, чтобы понять, что скрытая папка .svn (если вы используете SVN) испортит скрипт

1 голос
/ 28 августа 2018

Это должен быть любой другой каталог в каталоге дампа. Итак, сначала удалите каталог и повторите команду mongorestore -d db dump/db

0 голосов
/ 12 июля 2013

Пример:

./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, чтобы вызвать эту ошибку. Поскольку вы используете dump / db, укажите базу данных, но не коллекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...