Pokud jste zálohovali databázi pomocí mongodump
můžete jej obnovit pomocí mongorestore
utility.
mongorestore
obslužný program načte data buď z binárního výpisu databáze vytvořeného mongodump
nebo standardní vstup do mongod
nebo mongos
instance.
Vyhledejte databázové nástroje MongoDB
mongorestore
nástroj je součástí balíčku databázových nástrojů MongoDB. Databázové nástroje MongoDB jsou sada nástrojů příkazového řádku pro práci s MongoDB.
Pokud si nejste jisti, zda máte MongoDB Database Tools/mongorestore
nainstalováno. Zkuste spustit následující příkaz v terminálu nebo příkazovém řádku a zkontrolujte:
mongorestore --version
Pokud jej nemáte, můžete jej nainstalovat do svého systému pomocí pokynů k instalaci na webu MongoDB.
Kde spustit příkazy?
Musíte spustit mongorestore
příkazy z příkazového řádku vašeho systému (např. nový terminál nebo okno příkazového řádku).
Nespouštějte je z mongo
skořápka.
Obnovit všechny databáze z adresáře
Následující příkaz obnoví všechny databáze, které byly zálohovány do dump/
adresář:
mongorestore dump/
Tento příklad obnoví databáze do místní instance běžící na výchozím portu 27017. Víme to, protože jsme neposkytli žádného hostitele, port, ověřovací informace atd.
Obnovení konkrétní databáze
Můžete použít --nsInclude
parametr k určení databáze, kterou chcete obnovit.
Příklad:
mongorestore --nsInclude="PetHotel.*" dump/
V tomto případě jsme obnovili PetHotel
databáze. Obnovili jsme všechny sbírky, protože jsme použili zástupný znak hvězdička (*
), chcete-li specifikovat všechny kolekce.
Obnovení konkrétní sbírky
Můžete také použít --nsInclude
parametr k určení kolekce k obnovení.
Příklad:
mongorestore --nsInclude="PetHotel.pets" dump/
Tento příklad obnoví sbírku mazlíčků z PetHotel
databáze. Pokud databáze neexistuje, je vytvořena s jedinou kolekcí (pets
).
Tento příklad je téměř totožný s předchozím příkladem, až na to, že namísto použití zástupného znaku hvězdička (*
) pro určení všech kolekcí jsme výslovně uvedli kolekci, kterou chceme obnovit.
Přejmenovat sbírku
Můžete použít --nsFrom
a --nsTo
parametry pro zadání nového názvu kolekce.
Příklad:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/
Tím dojde k přejmenování pets
sběr do pets2
.
Všimněte si, že výše uvedený kód také obnoví všechny ostatní databáze a kolekce v dump/
adresář. Jediný rozdíl je v tom, že pets
kolekce je obnovena jako pets2
.
Pokud chcete obnovit pouze jednu kolekci (a přejmenovat ji v procesu), použijte --nsInclude
parametr.
Příklad:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/
Přejmenovat databázi
Stejný koncept můžete použít k přejmenování databáze. Jednoduše použijte --nsFrom
a --nsTo
parametry pro zadání nového názvu databáze.
Příklad:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/
V tomto případě jsem přejmenoval PetHotel
databáze do PetHouse
.
Všimněte si, že --nsInclude
parametr určuje nové jméno databáze. Také používám zástupný znak hvězdička (*
), abyste obnovili všechny kolekce v této databázi.
Vyloučení sbírek
Můžete použít --nsExclude
parametr k určení kolekce, kterou chcete vyloučit z procesu obnovy.
Příklad:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/
Tento příklad obnoví všechny sbírky v PetHotel
databáze kromě dogs
kolekce.
Můžete použít --nsExclude
vícekrát, abyste z procesu obnovy vyloučili více kolekcí.
Příklad:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/
Řízení přístupu/ověření
Předchozí příklady byly provedeny na místním počítači pomocí výchozího portu. To znamenalo, že jsme mohli spustit mongodump
bez určení věcí jako --host
, --port
, --username
, atd.
Zde je příklad, který používá tyto parametry k ověření jako homer
:
mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30
Mohli jsme také použít --password
parametr, ale neudělali jsme to. Pokud předáte --user
ale ne --password
, budete vyzváni k zadání hesla.
Obnovit z komprimovaných souborů
Můžete použít --gzip
parametr k obnovení z komprimovaných souborů nebo datového toku vytvořeného pomocí mongodump --gzip
.
Příklad:
mongorestore --gzip --nsInclude="krankykranes.*" dump3/
Tichý režim
Můžete použít --quiet
parametr pro omezení výstupu v okně terminálu nebo příkazového řádku.
mongorestore --quiet
Bez použití tohoto pravděpodobně uvidíte velký seznam zobrazení, sbírek atd., které jsou obnoveny.
Dlouhý režim
Na druhé straně můžete použít --verbose
nebo -v
parametry zvýšit výstup v okně terminálu nebo příkazového řádku.
mongorestore --verbose
Výřečnost můžete zvýšit opakováním -v
tvořit vícekrát.
Příklad:
mongorestore -vvvv
Další informace o mongodump
mongorestore
obslužný program akceptuje spoustu dalších užitečných parametrů a při jeho používání jako součásti strategie zálohování a obnovy je třeba zvážit také různé faktory.
Podívejte se na mongorestore
dokumentaci na webu MongoDB pro více informací.
Další možnosti
mongodump
a mongorestore
jsou jednoduché a efektivní nástroje pro zálohování a obnovu malých nasazení MongoDB, ale nejsou ideální pro zachycování záloh větších systémů.
Další metody zálohování a obnovy databází MongoDB naleznete v části Metody zálohování MongoDB na webu MongoDB.