MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Възстановете база данни MongoDB с помощта на mongorestore

Ако сте архивирали база данни с помощта на mongodump помощна програма, можете да я възстановите с помощта на mongorestore полезност.

mongorestore помощната програма зарежда данни или от бинарна база данни, създадена от mongodump или стандартния вход в mongod или mongos пример.

Проверете за инструменти за база данни на MongoDB

mongorestore помощната програма е част от пакета MongoDB Database Tools. Инструментите за база данни на MongoDB са набор от помощни програми от командния ред за работа с MongoDB.

Ако не сте сигурни дали имате MongoDB Database Tools/mongorestore инсталирани. Опитайте да изпълните следната команда във вашия терминал или команден ред, за да проверите:

mongorestore --version

Ако го нямате, можете да използвате инструкциите за инсталиране на уебсайта на MongoDB, за да го инсталирате на вашата система.

Къде да изпълнявам командите?

Трябва да стартирате mongorestore команди от командния ред на вашата система (например нов прозорец на терминал или команден ред).

Не ги стартирайте от mongo черупка.

Възстановяване на всички бази данни от директория

Следната команда възстановява всички бази данни, които са били архивирани в dump/ директория:

mongorestore dump/

Този пример възстановява базите данни в локалния екземпляр, работещ на порта по подразбиране 27017. Знаем това, защото не предоставихме информация за хост, порт, удостоверяване и т.н.

Възстановяване на конкретна база данни

Можете да използвате --nsInclude параметър, за да посочите база данни за възстановяване.

Пример:

mongorestore --nsInclude="PetHotel.*" dump/

В този случай възстановихме PetHotel база данни. Възстановихме всички колекции, защото използвахме заместващ знак със звездичка (* ), за да посочите всички колекции.

Възстановяване на конкретна колекция

Можете също да използвате --nsInclude параметър, за да посочите колекция за възстановяване.

Пример:

mongorestore --nsInclude="PetHotel.pets" dump/

Този пример възстановява колекцията от домашни любимци от PetHotel база данни. Ако базата данни не съществува, тя се създава с една колекция (pets ).

Този пример е почти идентичен с предишния пример, с изключение на това, че вместо да използвате заместващия знак звездичка (* ), за да посочим всички колекции, ние изрично посочихме колекцията, която искаме да възстановим.

Преименувайте колекция

Можете да използвате --nsFrom и --nsTo параметри, за да посочите ново име за колекцията.

Пример:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/

Това преименува pets колекция до pets2 .

Имайте предвид, че горният код също така възстановява всички други бази данни и колекции в dump/ директория. Единствената разлика е, че pets колекцията се възстановява като pets2 .

Ако искате да възстановите само една колекция (и да я преименувате в процеса), използвайте --nsInclude параметър.

Пример:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/

Преименувайте база данни

Можете да използвате същата концепция за преименуване на база данни. Просто използвайте --nsFrom и --nsTo параметри, за да посочите ново име за базата данни.

Пример:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/

В този случай преименувах PetHotel база данни към PetHouse .

Имайте предвид, че --nsInclude параметърът определя новия име на база данни. Също така използвам заместващия знак за звездичка (* ), за да възстановите всички колекции в тази база данни.

С изключение на колекции

Можете да използвате --nsExclude параметър, за да посочите колекция за изключване от процеса на възстановяване.

Пример:

mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/

Този пример възстановява всички колекции в PetHotel база данни с изключение на dogs колекция.

Можете да използвате --nsExclude няколко пъти, за да изключите множество колекции от процеса на възстановяване.

Пример:

mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/

Контрол на достъпа/Удостоверяване

Предишните примери бяха направени на локалната машина с помощта на порта по подразбиране. Това означаваше, че успяхме да изпълним mongodump без да се посочват неща като --host , --port , --username и др.

Ето пример, който използва тези параметри за удостоверяване като homer :

mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30

Можехме също да използваме --password параметър, но ние не го направихме. Ако подадете --user но не и --password , ще бъдете подканени за паролата.

Възстановяване от компресирани файлове

Можете да използвате --gzip параметър за възстановяване от компресирани файлове или поток от данни, създаден от mongodump --gzip .

Пример:

mongorestore --gzip  --nsInclude="krankykranes.*" dump3/

Тих режим

Можете да използвате --quiet параметър за ограничаване на изхода в прозореца на терминала или командния ред.

mongorestore --quiet

Без да използвате това, вероятно ще видите голям списък с изгледи, колекции и т.н., които са възстановени.

Подробен режим

От друга страна, можете да използвате --verbose или -v параметри за увеличаване изхода във вашия терминал или прозорец на командния ред.

mongorestore --verbose

Можете да увеличите многословността, като повторите -v форма няколко пъти.

Пример:

mongorestore -vvvv

Повече информация за mongodump

mongorestore Помощната програма приема много други полезни параметри и има различни фактори, които трябва да се вземат предвид, когато се използва като част от стратегия за архивиране и възстановяване.

Вижте mongorestore документация на уебсайта на MongoDB за повече информация.

Други опции

mongodump и mongorestore са прости и ефективни инструменти за архивиране и възстановяване на малки разгръщания на MongoDB, но не са идеални за заснемане на резервни копия на по-големи системи.

Вижте Методи за архивиране на MongoDB на уебсайта на MongoDB за други методи за архивиране и възстановяване на вашите бази данни MongoDB.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $literal

  2. Позволете на новия ClusterControl да защити вашите внедрявания на MongoDB

  3. MongoDB $ltrim

  4. Как да актуализирате стойност на масив в Mongoose

  5. Добавяне в Mongo DB с помощта на официален C# драйвер