sql >> Database teknologi >  >> NoSQL >> MongoDB

Gendan en MongoDB-database ved hjælp af mongorestore

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.


  1. MongoDB Java Driver-databaseforbindelse pooling med Tomcat

  2. SCUMM:Den agentbaserede databaseovervågningsinfrastruktur i ClusterControl

  3. Opretter du forbindelse til mongodb gennem browseren?

  4. Hvordan serialiseres et kort i Java til lagring i Redis?