Как использовать сброшенные данные по mongodump?

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

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

5 ответов

Решение

Вам нужно использовать 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

Вы также можете проверить http://learnmongo.com/ советы и помощь!

Я использую 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) в папке Backups с сохраненными коллекциями из указанной базы данных. В проводнике файлов это выглядит так:

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

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

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

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

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

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

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

mongorestore dump

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

mongorestore --drop dump

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

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

Для решения этой проблемы я скопировал папку дампа 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
показать дбс;

Для mongo версии 3 и выше используйте команду ниже:

mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/

После этого Mongo спросит пароль

Другие вопросы по тегам