Как использовать сброшенные данные по mongodump? - PullRequest
65 голосов
/ 31 марта 2011

Я использовал mongodump для выгрузки своей базы данных mongodb, он создал несколько файлов bson под dump/mydb

Но я не знаю, как их использовать.Я пробовал mongoimport, но, похоже, он не может импортировать данные bsonТогда как использовать эти файлы BSON?Как импортировать их в другой mongodb?

Ответы [ 5 ]

65 голосов
/ 31 марта 2011

Вам нужно использовать mongorestore , а не mongoimport ... который используется для таких вещей, как импорт json, csv и т. Д.

Из back-up-with-mongodump документов:

mongodump считывает данные из базы данных MongoDB и создает файлы BSON высокой точности, которые инструмент mongorestore может использовать для заполнения базы данных MongoDB.

mongodump и mongorestore - простые и эффективные инструменты для поддержки копирование и восстановление небольших развертываний MongoDB, но они не идеальны для захват резервных копий больших систем.

Подробнее о mongorestore вы можете прочитать в следующих документах; Я бы посмотрел и прочитал их, поскольку они очень полезны.

http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongorestore

Вы также можете проверить http://learnmongo.com для получения советов и помощи!

37 голосов
/ 31 марта 2011

Я использую mongodump , mongorestore для ежедневного резервного копирования и восстановления из резервной копии.У меня есть два .bat файла:
Во-первых, для резервного копирования, где вам нужно просто указать имя базы данных хоста и папку для резервного копирования:

SET host=localhost:27020
SET dbNameToDump=MyDB
SET backupsFolder=Backups

mongodump.exe --host %host% --db %dbNameToDump%

SET date="%date:~10,4%-%date:~4,2%-%date:~7,2%.%time:~0,2%-%time:~3,2%"
cd %backupsFolder%
md %date%

xcopy /e ..\dump %date%

rmdir /s /q ..\dump

Над файлом bat создайте папку с именем, подобным этому 2011-03-31.11-17(yyyy-MM-dd.hh-ss) inРезервные копии папок с сохраненными коллекциями из указанной базы данных.В проводнике файлов это выглядит так:

enter image description here

Второй bat-файл, который я использую для восстановления указанных дамп-файлов (здесь вам также необходимо указать имя базы данных и папку с дамп-файлами):

SET host=localhost:27020
SET dbNameToRestore=MyDB
SET restoreFolder=Restore

mongorestore.exe --host %host% --db %dbNameToRestore% %restoreFolder%

В проводнике файлов:

enter image description here

Кроме того, я использую расписание Windows для автоматизации процесса резервного копирования.

Надеюсь, приведенная выше информация будетполезно для кого-то.

8 голосов
/ 25 августа 2016

Как упоминалось в предыдущих ответах, вы должны использовать mongorestore вместо mongoimport. В дополнение к предыдущим ответам, когда ваш mongodb работает, выполните следующую команду, чтобы восстановить дамп из каталога дампа,

mongorestore dump

Это позволит импортировать все коллекции в вашу базу данных mydb . Однако это не удаляет базу данных перед восстановлением. Если вы хотите удалить базу данных перед импортом,

mongorestore --drop dump

Файлы bson в каталоге mydb будут восстановлены как коллекции в базе данных mydb . Для получения дополнительной информации о mongorestore проверьте документацию здесь .

6 голосов
/ 31 марта 2011

Используйте mongorestore. Монгоимпорт работает на выходе Монгоэкспорта. mongodump и mongorestore работают с двоичными файлами данных, а импорт / экспорт работают с json, csv и т. д. (удобочитаемые форматы)

3 голосов
/ 20 апреля 2016

Для решения этой проблемы я скопировал папку дампа dbdump (которая содержит файлы bson) в каталог bin mongodb и выполнил следующие команды в командной строке:

1.cd "путь к папке bin MongoDB"
(Пример: cd C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin)

2.mongorestore.exe --dir ./ имя каталога --db имя-базы-данных
(Пример: mongorestore --dir ./dbdump --db testdb)

Все файлы bson в папке дампа будут импортированыв вашу базу данных.Вы можете проверить это, выполнив следующие команды:
cd "путь к папке bin MongoDB"
mongo.exe
show dbs;

...