кодесурса
«MongoDB

Резервное копирование и восстановление MongoDB

script1adsense2code
script1adsense3code

Вступление

Резервное копирование и восстановление в MongoDB является важной частью для обработки базы данных. Эта утилита важна, потому что ваши ценные данные могут быть удалены или повреждены или повреждены с вашего сервера, локального компьютера случайно или по любой ошибке, какой бы она ни была. В этот жизненно важный момент вы можете быть в безопасности, восстанавливая свои данные, если у вас есть резервная копия ваших ценных данных. Резервное копирование может быть сделано в различном формате. Здесь, в этой статье, мы опишем процесс создания резервных копий и восстановления данных с использованием утилит, поставляемых с MongoDB

MongoDB Backup

Резервное копирование базы данных с mongodump

Утилита резервного копирования MongoDB может создать резервную копию для всего сервера, базы данных или коллекции, или вы можете использовать запрос для резервного копирования части коллекции.

Когда mongodump работает только без каких-либо аргументов, команда подключается к экземпляру MongoDB в локальной системе (например, localhost) через порт 27017 и создает резервную копию базы данных с именем dump / в текущем каталоге.

Вот команда для резервного копирования данных с экземпляра mongod или mongos, работающего на той же машине и с портом по умолчанию 27017.

Чтобы сделать резервную копию, вы должны ввести каталог bin в папку mongodb на вашем компьютере. Здесь наш путь D: / mongodb / bin, и вы должны выполнить команду отсюда.

D:\mongodb\bin>mongodump

Вот вывод

 D: / MongoDB / бен> mongodump
подключен к: 127.0.0.1
2015-04-24T16: 12: 38,401 + 0530 все дб
2015-04-24T16: 12: 38.402 + 0530 БАЗА ДАННЫХ: myinfo to dump / myinfo
2015-04-24T16: 12: 38.403 + 0530 myinfo.system.indexes для дампа / myinfo / system.indexes.bson
2015-04-24T16: 12: 38,404 + 0530 1 документов
2015-04-24T16: 12: 38.404 + 0530 myinfo.userdetails для дампа / myinfo / userdetails.bson
2015-04-24T16: 12: 38,406 + 0530 1 документ
2015-04-24T16: 12: 38.406 + 0530 Метаданные для myinfo.userdetails для сброса / myinfo / userdetails.metadata.json
2015-04-24T16: 12: 38.408 + 0530 БАЗА ДАННЫХ: тест для сброса / тест
2015-04-24T16: 12: 38.409 + 0530 test.system.indexes to dump / test / system.indexes.bson
2015-04-24T16: 12: 38,410 + 0530 1 документ
2015-04-24T16: 12: 38.410 + 0530 test.userdetails для создания дамп / test / userdetails.bson
2015-04-24T16: 12: 38,411 + 0530 1 документ
2015-04-24T16: 12: 38.412 + 0530 Метаданные для test.user - подробности для дампа / test / userdetails.metadata.json
2015-04-24T16: 12: 38.413 + 0530 БАЗА ДАННЫХ: администратор для дампа / администратор

Для резервного копирования базы данных с помощью mongodump укажите --host и --port

Здесь, в приведенном ниже примере, хост - это mypc-PC, а порт - это порт по умолчанию 27017.

D:\mongodb\bin>mongodump --host mypc-PC  --port 27017

Вот вывод

 D: / mongodb / bin> mongodump --host mypc-PC --port 27017
подключен к: bidhan-ПК: 27017
2015-04-25T10: 49: 53,994 + 0530 все дб
2015-04-25T10: 49: 53.997 + 0530 БАЗА ДАННЫХ: myinfo to dump / myinfo
2015-04-25T10: 49: 53.998 + 0530 myinfo.system.indexes для дампа / myinfo / system.indexes.bson
2015-04-25T10: 49: 53,999 + 0530 1 документов
2015-04-25T10: 49: 54.000 + 0530 myinfo.userdetails для дампа / myinfo / userdetails.bson
2015-04-25T10: 49: 54.000 + 0530 1 документов
2015-04-25T10: 49: 54.001 + 0530 Метаданные для myinfo.userdetails для дампа / myinfo / userdetails.metadata.json
2015-04-25T10: 49: 54.002 + 0530 БАЗА ДАННЫХ: тест для сброса / тест
2015-04-25T10: 49: 54.005 + 0530 test.system.indexes to dump / test / system.indexes.bson
2015-04-25T10: 49: 54.006 + 0530 1 документ
2015-04-25T10: 49: 54.007 + 0530 test.userdetails для создания дамп / test / userdetails.bson
2015-04-25T10: 49: 54.009 + 0530 1 документ
2015-04-25T10: 49: 54.009 + 0530 Метаданные для test.user - детали для сброса / test / userdetails.metadata.json
2015-04-25T10: 49: 54.011 + 0530 БАЗА ДАННЫХ: администратор для дампа / администратор

NB. Команда mongodump перезаписывает выходные файлы, если они уже существуют в папке данных резервного копирования. Таким образом, лучше убедиться, что вам больше не нужны файлы в выходной папке или вы взяли копию предыдущей резервной папки, прежде чем запускать команду mongodump несколько раз.

Резервное копирование базы данных с mongodump указать другой выходной каталог

Вы можете сделать резервную копию в определенном каталоге, используя опцию --out или -o. Здесь в приведенном ниже примере мы упоминаем каталог в D: это backup_data / backup / folder.

D:\mongodb\bin>mongodump --out /backup_data/backup/

Вот вывод

 D: / mongodb / bin> mongodump --out / backup_data / backup /
подключен к: 127.0.0.1
2015-04-25T11: 01: 51.677 + 0530 все дб
2015-04-25T11: 01: 51.679 + 0530 БАЗА ДАННЫХ: myinfo в / backup_data / backup / myinfo
2015-04-25T11: 01: 51.694 + 0530 myinfo.system.indexes для /backup_data/backup/myinfo/system.indexes.bson
2015-04-25T11: 01: 51.695 + 0530 1 документ
2015-04-25T11: 01: 51.696 + 0530 myinfo.user относится к /backup_data/backup/myinfo/userdetails.bson
2015-04-25T11: 01: 51.696 + 0530 1 документ
2015-04-25T11: 01: 51.696 + 0530 Метаданные для myinfo.userподобны /backup_data/backup/myinfo/userdetails.metadata.json
2015-04-25T11: 01: 51.853 + 0530 DATABASE: тестирование в / backup_data / backup / test
2015-04-25T11: 01: 51.854 + 0530 test.system.indexes to /backup_data/backup/test/system.indexes.bson
2015-04-25T11: 01: 51.855 + 0530 1 документ
2015-04-25T11: 01: 51.856 + 0530 test.user подробности о /backup_data/backup/test/userdetails.bson
2015-04-25T11: 01: 51.857 + 0530 1 документ
2015-04-25T11: 01: 51.858 + 0530 метаданные для test.user: подробности по адресу /backup_data/backup/test/userdetails.metadata.json
2015-04-25T11: 01: 51.860 + 0530 БАЗА ДАННЫХ: администратор для / backup_data / backup / admin

NB. Команда mongodump перезаписывает выходные файлы, если они уже существуют в папке данных резервного копирования. Таким образом, лучше убедиться, что вам больше не нужны файлы в выходной папке или вы взяли копию предыдущей резервной папки, прежде чем запускать команду mongodump несколько раз.

Резервное копирование определенной коллекции и конкретной базы данных с помощью mongodump

Если вы хотите сделать резервную копию определенной базы данных и определенной коллекции с помощью команды mongodump, вы можете указать --db и --collection в качестве параметров для mongodump.

Здесь, в приведенном ниже примере, наша база данных - myinfo, а collection - userdetails.

D:\mongodb\bin>mongodump --collection userdetails --db myinfo

Приведенная выше операция создаст дамп коллекции с именем userdetails из базы данных myinfo в подкаталоге dump / текущего рабочего каталога. Вот вывод

D:\mongodb\bin>mongodump --collection userdetails --db myinfo
connected to: 127.0.0.1
2015-04-25T11:17:46.770+0530 DATABASE: myinfo    to     dump\myinfo
2015-04-25T11:17:46.771+0530    myinfo.userdetails to dump\myinfo\userdetails.bson
2015-04-25T11:17:46.772+0530             1 documents
2015-04-25T11:17:46.772+0530    Metadata for myinfo.userdetails to dump\myinfo\userdetails.metadata.json

NB. Команда mongodump перезаписывает выходные файлы, если они уже существуют в папке данных резервного копирования. Таким образом, лучше убедиться, что вам больше не нужны файлы в выходной папке или вы взяли копию предыдущей резервной папки, прежде чем запускать команду mongodump несколько раз.

Создание резервных копий из нелокальных экземпляров mongod

В этом типе резервного копирования параметры --host и --port для mongodump позволяют пользователю подключаться и выполнять резервное копирование с удаленного хоста. Вот такая команда:

mongodump --host [host name] --port 3017 --username [user] --password [pass] --out [backup folder path of local machine]
for example, the path of the folder  like :   /backup_data/backup/

Резервное копирование базы данных и коллекции MongoDB с использованием экспорта в формате CSV

Данные MongoDB можно экспортировать с помощью команды mongoexport. Команда mongoexport подключается к экземпляру mongod, который работает на локальном порту с номером 27017.

Здесь в приведенном ниже примере экспортируются данные из коллекции userdetails, которая находится в базе данных myinfo в формате CSV, в файл D: /backup_data/backup/userdetails.csv.

Когда вы экспортируете в формате CSV, вы должны указать поля в документах для экспорта, а в приведенном ниже примере конкретными полями являются user_id, образование и интерес.

D:\mongodb\bin>mongoexport --db myinfo --collection userdetails --csv --fields user_id,education,interest --out /opt/backups/userdetails.csv

Вот вывод

 D: / mongodb / bin> mongoexport --db myinfo --коллекция userdetails --csv --fields user_id, образование, интересы --out /opt/backups/userdetails.csv
подключен к: 127.0.0.1
экспортировано 1 записей

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

«Редактировать-лента»

Экспорт в формате CSV с использованием файла, содержащего список полей

Вы также можете указать поля в файле, содержащем список полей, разделенных строками, для экспорта и использовать этот файл .txt вместе с параметром --fieldFile в команде mongoexport.

Вот файл myfields.txt, как показано ниже. Откройте редактор блокнота и напишите следующий текст, только одно поле в одной строке, затем сохраните файл под нужным именем в папке / mondodb / bin / и используйте это имя в команде. Здесь наше имя файла myfields.txt, и мы использовали это имя.

user_id
education
interest

Вот команда

D:\mongodb\bin>mongoexport --db myinfo --collection userdetails --csv --fieldFile  myfields.txt --out /backup_data/backup/userdetails.csv

Вот вывод

 D: / mongodb / bin> mongoexport --db myinfo --collection userdetails --csv --fieldFile myfields.txt --out /backup_data/backup/userdetails.csv
подключен к: 127.0.0.1
экспортировано 1 записей

Экспорт в формате JSON

В приведенном ниже примере экспортируются пользовательские детали коллекции из экземпляра MongoDB, запущенного на локальном порту с номером 27017, с явным включением ведения журнала. Эта команда записывает экспортированные данные в файл newuserdetails.json в формате JSON.

Вот команда

D:\mongodb\bin>mongoexport --db myinfo --collection userdetails --out /backup_data/backup/newuserdetails.json --journal

Вот вывод

 D: / mongodb / bin> mongoexport --db myinfo --коллекция userdetails --out /backup_data/backup/newuserdetails.json --journal
подключен к: 127.0.0.1
экспортировано 1 записей

Экспорт с удаленного хоста, запущенного с аутентификацией

В приведенном ниже примере экспортируется пользовательская информация коллекции из базы данных myinfo, которая требует аутентификации. Предположим, что эти данные находятся в экземпляре MongoDB, расположенном на хосте [your_domain.example.com], работающем через порт 37017, для которого требуется имя пользователя [имя пользователя] и пароль [ваш пароль].

Имя нашей коллекции - userdetails, а db - myinfo, а расположение и имя файла резервной копии - D: /backup_data/backup/newuserdetails.json.

mongoexport --host [your_domain.example.com] --port 37017 --username [name of the user] --password [your password] --collection userdetails --db myinfo --out /backup_data/backup/newuserdetails.json

Экспорт результатов запроса

Только результаты запроса также можно экспортировать с помощью параметра --query, и ограничить результаты одной базой данных с помощью параметра --db.

Здесь, в приведенном ниже примере, эта команда возвращает все документы из коллекции userdetails в базе данных myinfo, которые содержат поле с именем интереса и значением которого является MUSIC.

Вот команда

D:\mongodb\bin>mongoexport --db myinfo --collection userdetails --query "{'interest' : 'MUSIC'}";

Вот вывод

 D: / mongodb / bin> mongoexport --db myinfo --collection userdetails --query "{'Interest': 'MUSIC'}";
подключен к: 127.0.0.1
{"_id": {"$ oid": "553a1e0f195e5fc01733c693"}, "user_id": "user1", "password": "1a2b3c", "date_of_join": "16/10/2010", "education": "MCA "," профессию ":" КОНСУЛЬТАНТ "," интерес ":" МУЗЫКА "," имя_общества ": [" СОВРЕМЕННАЯ МУЗЫКА "," КЛАССИЧЕСКАЯ МУЗЫКА "," ЗАПАДНАЯ МУЗЫКА "]," community_moder_id ": [
 "MR. Alex", "MR. Dang", "MR Haris"], "community_members": [700, 200, 1500], "friends_id": ["kumar", "harry", "anand"], "ban_friends_id ": [" Amir "," Raja "," mont "]}
экспортировано 1 записей

MongoDB Restore

Восстановление из дампа с помощью mongorestore

Утилита восстановления с помощью команды mongorestore восстанавливает двоичную резервную копию, созданную mongodump. Mongorestore может восстановить либо целую резервную копию базы данных, либо ее часть.

Следующая команда импортирует резервную копию базы данных в папке дампа в экземпляр mongod, работающий на интерфейсе localhost. Вот команда. Здесь мы не упомянули имя папки, поэтому по умолчанию резервная копия базы данных в папке дампа будет импортирована.

D:\mongodb\bin>mongorestore

Вот вывод

 D: / MongoDB / бен> mongorestore
подключен к: 127.0.0.1
2015-04-27T11: 00: 02.302 + 0530 dump / myinfo / userdetails.bson
2015-04-27T11: 00: 02.302 + 0530 вход в пространство имен [myinfo.userdetails]
Восстановление в myinfo.userdetails без сброса. Восстановленные данные будут вставлены без ошибок; проверьте журнал вашего сервера
1 объектов найдено
2015-04-27T11: 00: 02.314 + 0530 Создание индекса: {ключ: {_id: 1}, имя: "_id_", ns: "myinfo.userdetails"}
2015-04-27T11: 00: 02.366 + 0530 dump / test / userdetails.bson
2015-04-27T11: 00: 02.366 + 0530 вход в пространство имен [test.userdetails]
Восстановление до test.userdetails без сброса. Восстановленные данные будут вставлены без ошибок; проверьте журнал вашего сервера
1 объектов найдено
2015-04-27T11: 00: 02.381 + 0530 Создание индекса: {ключ: {_id: 1}, имя: "_id_", ns: "test.userdetails"}

Следующая команда импортирует резервную копию базы данных в папке myinfo в папке dump в экземпляр mongod, работающий на интерфейсе localhost. Вот команда. Здесь мы упоминаем имя папки, поэтому резервная копия базы данных из упомянутой папки будет импортирована.

D:\mongodb\bin>mongorestore dump/myinfo

Вот вывод

 D: / mongodb / bin> mongorestore dump / myinfo
подключен к: 127.0.0.1
2015-04-27T11: 00: 54.570 + 0530 dump / myinfo / userdetails.bson
2015-04-27T11: 00: 54.572 + 0530 вход в пространство имен [myinfo.userdetails]
Восстановление в myinfo.userdetails без сброса. Восстановленные данные будут вставлены без ошибок; проверьте журнал вашего сервера
1 объектов найдено
2015-04-27T11: 00: 54.581 + 0530 Создание индекса: {ключ: {_id: 1}, имя: "_id_", ns: "myinfo.userdetails"}

Восстановление резервных копий в нелокальные экземпляры mongod

Команда mongorestore по умолчанию подключается к экземпляру MongoDB, работающему на интерфейсе localhost с портом по умолчанию (27017). Мы также можем восстановить резервную копию на другой хост или порт, используя опции --host и --port.

Вот команда.

mongorestore --host [host name] --port 3017 --username [user] --password [password] [backup folder path of local machine]
for example, the path of the folder  like :   /backup_data/backup/

Импорт коллекции с использованием mongoimport

Команда mongoimport восстанавливает базу данных из резервной копии, созданной с помощью mongoexport.

Здесь в примере предположим, что наше имя файла резервной копии - newuserdetails.JSON, имя базы данных - myinfo, а имя коллекции - userdetails. В следующем примере mongoimport импортирует данные в данных JSON из файла newuserdetails.json в пользовательские детали коллекции в базе данных myinfo.

D:\mongodb\bin>mongoimport --db myinfo --collection userdetails --file newuserdetails.json

Вот вывод

 D: / mongodb / bin> mongoimport --db myinfo - коллекция пользовательских деталей --file newuserdetails.json
подключен к: 127.0.0.1
2015-04-27T11: 53: 12.880 + 0530 insertDocument :: вызвано :: 11000 E11000 Индекс ошибки дублированного ключа: myinfo.userdetails. $ _ Id_ dup key: {: ObjectId ('553a1e0f195e5fc01733c693')}
2015-04-27T11: 53: 12.883 + 0530 insertDocument :: вызвано :: 11000 E11000 Индекс ошибки дублированного ключа: myinfo.userdetails. $ _ Id_ dup key: {: ObjectId ('553b8e2bf11d4abcb967a704')}
2015-04-27T11: 53: 12,884 + 0530 импортировано 2 объекта

Импорт JSON на удаленный хост, работающий с аутентификацией

Команду mongoimport также можно использовать для импорта данных в удаленную базу данных MongoDB с включенной аутентификацией. Здесь в приведенном ниже примере mongoimport импортирует данные из файла /backup_data/backup/newuserdetails.json в коллекцию userdetails в базе данных myinfo в удаленной базе данных MongoDB.

Вот команда.

mongoimport --host [host name] --port 37017 --username [user] --password [password] --collection userdetails --db myinfo --file \backup_data\backup\newuserdetails.json

CSV Import

Mongoimport может импортировать данные в формате CSV в коллекцию. Опция --headerline используется, чтобы дать команду mongoimport определить имена полей, используя первую строку в файле CSV.

Здесь в примере предположим, что наше имя файла резервной копии - userdetails.csv, расположенное в папке / backup_data / backup /, имя БД - myinfo, а имя коллекции - userdetails.

D:\mongodb\bin>mongoimport --db myinfo --collection userdetails --type csv --headerline --file /backup_data/backup/userdetails.csv

Вот вывод

 D: / mongodb / bin> mongoimport --db myinfo --коллекция userdetails --type csv --headerline --file /backup_data/backup/userdetails.csv
подключен к: 127.0.0.1
2015-04-27T12: 49: 55,984 + 0530 импортировано 1 объектов

Здесь, в приведенном ниже примере, имя коллекции не указано, и была указана опция --ignoreBlanks, которая будет игнорировать пустые столбцы.

D:\mongodb\bin>mongoimport --db myinfo --type csv --headerline --ignoreBlanks --file /backup_data/backup/userdetails.csv

Вот вывод

 D: / mongodb / bin> mongoimport --db myinfo --type csv --headerline --ignoreBlanks --file /backup_data/backup/userdetails.csv
подключен к: 127.0.0.1
коллекция не указана!
используя имя файла 'userdetails' в качестве коллекции.
2015-04-27T12: 52: 21.794 + 0530 импортировано 1 объектов

Предыдущая: Точка нотации MongoDB
Далее: MongoDB ДРАЙВЕР Java ДРАЙВЕР

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code