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.