Hvis du har sikkerhedskopieret en database ved hjælp af mongodump
værktøjet, kan du gendanne det ved hjælp af mongorestore
værktøj.
mongorestore
hjælpeprogrammet indlæser data fra enten en binær database-dump oprettet af mongodump
eller standard input til en mongod
eller mongos
eksempel.
Søg efter MongoDB-databaseværktøjer
mongorestore
hjælpeprogrammet er en del af MongoDB Database Tools-pakken. MongoDB-databaseværktøjerne er en række kommandolinjeværktøjer til at arbejde med MongoDB.
Hvis du ikke er sikker på, om du har MongoDB Database Tools/mongorestore
installeret. Prøv at køre følgende kommando i din terminal eller kommandoprompt for at kontrollere:
mongorestore --version
Hvis du ikke har det, kan du bruge installationsinstruktionerne på MongoDB-webstedet til at installere det på dit system.
Hvor skal kommandoerne køres?
Du skal køre mongorestore
kommandoer fra dit systems kommandolinje (f.eks. et nyt terminal- eller kommandopromptvindue).
Kør dem ikke fra mongo
skal.
Gendan alle databaser fra en mappe
Følgende kommando gendanner alle databaser, der er blevet sikkerhedskopieret til dump/
mappe:
mongorestore dump/
Dette eksempel gendanner databaserne til den lokale instans, der kører på standardporten 27017. Vi ved dette, fordi vi ikke har givet nogen vært, port, godkendelsesoplysninger osv.
Gendan en specifik database
Du kan bruge --nsInclude
parameter for at angive en database, der skal gendannes.
Eksempel:
mongorestore --nsInclude="PetHotel.*" dump/
I dette tilfælde gendannede vi PetHotel
database. Vi gendannede alle samlinger, fordi vi brugte et jokertegn for stjerne (*
) for at angive alle samlinger.
Gendan en specifik samling
Du kan også bruge --nsInclude
parameter for at angive en samling, der skal gendannes.
Eksempel:
mongorestore --nsInclude="PetHotel.pets" dump/
Dette eksempel gendanner kæledyrssamlingen fra PetHotel
database. Hvis databasen ikke eksisterer, oprettes den med en enkelt samling (pets
).
Dette eksempel er næsten identisk med det foregående eksempel, bortset fra at i stedet for at bruge stjerne-jokertegnet (*
) for at angive alle samlinger, har vi eksplicit angivet den samling, som vi ønsker at gendanne.
Omdøb en samling
Du kan bruge --nsFrom
og --nsTo
parametre for at angive et nyt navn til samlingen.
Eksempel:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/
Dette omdøber pets
samling til pets2
.
Bemærk, at ovenstående kode også gendanner alle andre databaser og samlinger i dump/
vejviser. Den eneste forskel er, at pets
samling gendannes som pets2
.
Hvis du kun ønsker at gendanne en enkelt samling (og omdøbe den i processen), så brug --nsInclude
parameter.
Eksempel:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/
Omdøb en database
Du kan bruge det samme koncept til at omdøbe en database. Du skal blot bruge --nsFrom
og --nsTo
parametre for at angive et nyt navn til databasen.
Eksempel:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/
I dette tilfælde omdøbte jeg PetHotel
database til PetHouse
.
Bemærk, at --nsInclude
parameter angiver ny databasenavn. Jeg bruger også stjerne-jokertegnet (*
) for at gendanne alle samlinger i den database.
Ekskluderer samlinger
Du kan bruge --nsExclude
parameter for at angive en samling, der skal udelukkes fra gendannelsesprocessen.
Eksempel:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/
Dette eksempel gendanner alle samlinger i PetHotel
database undtagen dogs
samling.
Du kan bruge --nsExclude
flere gange for at udelukke flere samlinger fra gendannelsesprocessen.
Eksempel:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/
Adgangskontrol/godkendelse
De tidligere eksempler blev udført på den lokale maskine ved hjælp af standardporten. Dette betød, at vi var i stand til at køre mongodump
uden at specificere ting som --host
, --port
, --username
osv.
Her er et eksempel, der bruger disse parametre til at godkende som homer
:
mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30
Vi kunne også have brugt --password
parameter, men det gjorde vi ikke. Hvis du sender --user
men ikke --password
, bliver du bedt om adgangskoden.
Gendan fra komprimerede filer
Du kan bruge --gzip
parameter for at gendanne fra komprimerede filer eller datastrøm oprettet af mongodump --gzip
.
Eksempel:
mongorestore --gzip --nsInclude="krankykranes.*" dump3/
Støjsvag tilstand
Du kan bruge --quiet
parameter for at begrænse output i dit terminal- eller kommandopromptvindue.
mongorestore --quiet
Uden at bruge dette, vil du sandsynligvis se en stor liste over visninger, samlinger osv., der er gendannet.
Verbose Mode
På bagsiden kan du bruge --verbose
eller -v
parametre for at øge outputtet i dit terminal- eller kommandopromptvindue.
mongorestore --verbose
Du kan øge omfanget ved at gentage -v
form flere gange.
Eksempel:
mongorestore -vvvv
Flere oplysninger om mongodump
mongorestore
hjælpeprogrammet accepterer masser af andre nyttige parametre, og der er også forskellige faktorer at overveje, når du bruger det som en del af en backup- og gendannelsesstrategi.
Se mongorestore
dokumentation på MongoDB-webstedet for mere info.
Andre muligheder
mongodump
og mongorestore
er enkle og effektive værktøjer til sikkerhedskopiering og gendannelse af små MongoDB-implementeringer, men er ikke ideelle til at tage backup af større systemer.
Se MongoDB Backup Methods på MongoDB-webstedet for andre metoder til sikkerhedskopiering og gendannelse af dine MongoDB-databaser.