sql >> Database >  >> NoSQL >> MongoDB

Een MongoDB-database herstellen met mongorestore

Als u een back-up hebt gemaakt van een database met behulp van de mongodump hulpprogramma, kunt u het herstellen met behulp van de mongorestore hulpprogramma.

De mongorestore hulpprogramma laadt gegevens van ofwel een binaire databasedump gemaakt door mongodump of de standaard invoer in een mongod of mongos instantie.

Controleer op MongoDB Database Tools

De mongorestore hulpprogramma maakt deel uit van het MongoDB Database Tools-pakket. De MongoDB Database Tools zijn een reeks opdrachtregelhulpprogramma's voor het werken met MongoDB.

Als je niet zeker weet of je de MongoDB Database Tools/mongorestore . hebt geïnstalleerd. Probeer het volgende commando uit te voeren in uw Terminal of Command Prompt om te controleren:

mongorestore --version

Als je het niet hebt, kun je de installatie-instructies op de MongoDB-website gebruiken om het op je systeem te installeren.

Waar moeten de opdrachten worden uitgevoerd?

U moet mongorestore . uitvoeren opdrachten vanaf de opdrachtregel van uw systeem (bijvoorbeeld een nieuw Terminal- of opdrachtpromptvenster).

Voer ze niet uit vanuit de mongo schelp.

Herstel alle databases uit een directory

De volgende opdracht herstelt alle databases waarvan een back-up is gemaakt naar de dump/ map:

mongorestore dump/

Dit voorbeeld herstelt de databases naar de lokale instantie die draait op de standaardpoort 27017. We weten dit, omdat we geen host-, poort-, authenticatie-informatie, enz. hebben verstrekt.

Een specifieke database herstellen

U kunt de --nsInclude . gebruiken parameter om een ​​database op te geven om te herstellen.

Voorbeeld:

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

In dit geval hebben we het PetHotel . hersteld databank. We hebben alle collecties hersteld, omdat we een asterisk-jokerteken hebben gebruikt (* ) om alle collecties op te geven.

Een specifieke verzameling herstellen

U kunt ook de --nsInclude . gebruiken parameter om een ​​collectie op te geven om te herstellen.

Voorbeeld:

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

Dit voorbeeld herstelt de verzameling huisdieren uit het PetHotel databank. Als de database niet bestaat, wordt deze gemaakt met een enkele verzameling (pets ).

Dit voorbeeld is bijna identiek aan het vorige voorbeeld, behalve dat in plaats van het asterisk-jokerteken (* ) om alle collecties te specificeren, hebben we expliciet de collectie gespecificeerd die we willen herstellen.

De naam van een collectie wijzigen

U kunt de --nsFrom . gebruiken en --nsTo parameters om een ​​nieuwe naam voor de collectie op te geven.

Voorbeeld:

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

Dit hernoemt de pets ophaling naar pets2 .

Merk op dat de bovenstaande code ook alle andere databases en verzamelingen in de dump/ . herstelt map. Het enige verschil is dat de pets collectie is hersteld als pets2 .

Als u slechts één verzameling wilt herstellen (en de naam ervan wilt wijzigen), gebruik dan de --nsInclude parameter.

Voorbeeld:

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

De naam van een database wijzigen

U kunt hetzelfde concept gebruiken om een ​​database te hernoemen. Gebruik gewoon de --nsFrom en --nsTo parameters om een ​​nieuwe naam voor de database op te geven.

Voorbeeld:

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

In dit geval hernoemde ik het PetHotel database naar PetHouse .

Merk op dat de --nsInclude parameter specificeert de nieuwe database naam. Ik gebruik ook het asterisk-jokerteken (* ) om alle collecties in die database te herstellen.

Exclusief collecties

U kunt de --nsExclude . gebruiken parameter om een ​​verzameling op te geven om uit te sluiten van het herstelproces.

Voorbeeld:

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

Dat voorbeeld herstelt alle collecties in het PetHotel database behalve de dogs collectie.

U kunt --nsExclude . gebruiken meerdere keren om meerdere collecties uit te sluiten van het herstelproces.

Voorbeeld:

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

Toegangscontrole/authenticatie

De vorige voorbeelden zijn gedaan op de lokale computer met behulp van de standaardpoort. Dit betekende dat we mongodump . konden uitvoeren zonder dingen op te geven zoals --host , --port , --username , enz.

Hier is een voorbeeld dat deze parameters gebruikt om te authenticeren als homer :

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

We hadden ook de --password . kunnen gebruiken parameter, maar dat deden we niet. Als u --user pass doorgeeft maar niet --password , wordt u om het wachtwoord gevraagd.

Herstellen vanuit gecomprimeerde bestanden

U kunt de --gzip . gebruiken parameter om te herstellen van gecomprimeerde bestanden of gegevensstroom gemaakt door mongodump --gzip .

Voorbeeld:

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

Stille modus

U kunt de --quiet . gebruiken parameter om de uitvoer in uw Terminal- of opdrachtpromptvenster te beperken.

mongorestore --quiet

Zonder dit te gebruiken, ziet u waarschijnlijk een grote lijst met weergaven, collecties, enz. Die zijn hersteld.

Uitgebreide modus

Aan de andere kant kun je de --verbose . gebruiken of -v parameters om te verhogen de uitvoer in uw Terminal- of opdrachtpromptvenster.

mongorestore --verbose

U kunt de breedsprakigheid vergroten door de -v . te herhalen meerdere keren vormen.

Voorbeeld:

mongorestore -vvvv

Meer informatie over mongodump

De mongorestore hulpprogramma accepteert tal van andere nuttige parameters, en er zijn ook verschillende factoren waarmee u rekening moet houden wanneer u het gebruikt als onderdeel van een back-up- en herstelstrategie.

Zie de mongorestore documentatie op de MongoDB-website voor meer info.

Andere opties

mongodump en mongorestore zijn eenvoudige en efficiënte tools voor het maken van back-ups en het herstellen van kleine MongoDB-implementaties, maar zijn niet ideaal voor het vastleggen van back-ups van grotere systemen.

Zie MongoDB-back-upmethoden op de MongoDB-website voor andere methoden voor het maken van back-ups en het herstellen van uw MongoDB-databases.


  1. Wat is er nieuw in MongoDB 4.4

  2. Test lege string in mongodb en pymongo

  3. mongodb vinden door veldwaarden te vergelijken

  4. Authenticatie met Spring Security en MongoDB