Ако сте архивирали база данни с помощта на 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.