Как использовать сбрасываемые данные mongodump?
Я использовал mongodump
для сброса моей базы данных mongodb, он создал несколько файлов bson в dump/mydb
Но я не знаю, как их использовать. Я попробовал mongoimport
, но, похоже, он не может импортировать данные bson. Затем, как использовать эти файлы bson? Как импортировать их в другой mongodb?
Ответы
Ответ 1
Вам нужно использовать 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 советы и помощь!
Ответ 2
Я использую 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 с сохраненными коллекциями из указанной базы данных. В проводнике файлов это выглядит так:
![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 для автоматизации процесса резервного копирования.
Надеюсь, информация выше будет полезна для кого-то.
Ответ 3
Как упоминалось в предыдущих ответах, вы должны использовать mongorestore
вместо mongoimport
. В дополнение к предыдущим ответам, когда ваш mongodb работает, выполните следующую команду, чтобы восстановить дамп из каталога дампа,
mongorestore dump
Это импортирует все коллекции в вашу базу данных mydb. Однако это не удаляет базу данных перед восстановлением. Если вы хотите удалить базу данных перед импортом,
mongorestore --drop dump
Файлы bson в каталоге mydb будут восстановлены как коллекции в базе данных mydb. Для получения дополнительной информации о mongorestore проверьте документацию здесь.
Ответ 4
Используйте mongorestore. mongoimport работает над выходом mongoexport. mongodump и mongorestore работают над двоичными файлами данных, в то время как импорт/экспорт работают на json, csv и т.д. (читаемые человеком форматы)
Ответ 5
Для этого я скопировал папку дампа dbdump (которая содержит файлы bson) в каталог bin mongodb и выполнила приведенные ниже команды в командной строке:
1. cd "путь к папке bin MongoDB"
(Пример: cd C:\Program Files\MongoDB\Server\3.2\bin)
2. Имя файла mongorestore.exe --dir./directory --db имя базы данных
(Пример: mongorestore --dir./dbdump --db testdb)
Все файлы bson в папке дампа будут импортированы в вашу базу данных.
Вы можете проверить это, выполнив следующие команды:
cd "путь к папке bin MongoDB"
mongo.exe
show dbs;
Ответ 6
Для Монго версии 3 и выше используйте команду ниже:
mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/
Монго спросит пароль после этого