sql >> Databáze >  >> NoSQL >> MongoDB

Obnovte databázi MongoDB pomocí mongorestore

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.


  1. MongoDB $filtr

  2. Jak mohu použít redis s Django?

  3. Bezproblémové měřítko pro vaše servery MongoDB

  4. Jak vytvořit místní servisní sběrnici založenou na Windows mimo Azure, podobnou Redis s automatickým převzetím služeb při selhání?