Подтвердить что ты не робот

Mongorestore из db вызывает у меня проблемы

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

4b9b3361

Ответ 1

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

Я делал

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

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

mongorestore --db Gen --drop dump/Gen

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

Ответ 2

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

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

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

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

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

Ответ 3

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

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

Ответ 4

Это то, что в конечном итоге работает для меня (mydb - это имя моей базы данных):

mongorestore --drop -db mydb mydbbackup/mydb/

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

mongodump -d mydb -o mydbbackup

Ответ 5

Пример:

./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 укажите db, но не коллекцию.