sql >> Databasteknik >  >> NoSQL >> MongoDB

Återställ en MongoDB-databas med mongorestore

Om du har säkerhetskopierat en databas med mongodump kan du återställa det med mongorestore verktyg.

mongorestore verktyget laddar data från antingen en binär databasdump skapad av mongodump eller standardinmatningen i en mongod eller mongos instans.

Sök efter MongoDB Database Tools

mongorestore verktyget är en del av MongoDB Database Tools-paketet. MongoDB Database Tools är en uppsättning kommandoradsverktyg för att arbeta med MongoDB.

Om du inte är säker på om du har MongoDB Database Tools/mongorestore installerat. Prova att köra följande kommando i din terminal eller kommandotolk för att kontrollera:

mongorestore --version

Om du inte har det kan du använda installationsinstruktionerna på MongoDB-webbplatsen för att installera det på ditt system.

Var kör man kommandona?

Du måste köra mongorestore kommandon från ditt systems kommandorad (t.ex. ett nytt terminal- eller kommandotolkfönster).

Kör dem inte från mongo skal.

Återställ alla databaser från en katalog

Följande kommando återställer alla databaser som har säkerhetskopierats till dump/ katalog:

mongorestore dump/

Det här exemplet återställer databaserna till den lokala instansen som körs på standardporten 27017. Vi vet detta eftersom vi inte tillhandahöll någon värd, port, autentiseringsinformation etc.

Återställ en specifik databas

Du kan använda --nsInclude parameter för att ange en databas som ska återställas.

Exempel:

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

I det här fallet återställde vi PetHotel databas. Vi återställde alla samlingar eftersom vi använde en asterisk-jokertecken (* ) för att ange alla samlingar.

Återställ en specifik samling

Du kan också använda --nsInclude parameter för att ange en samling som ska återställas.

Exempel:

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

Det här exemplet återställer husdjurssamlingen från PetHotel databas. Om databasen inte finns skapas den med en enda samling (pets ).

Det här exemplet är nästan identiskt med det föregående exemplet, förutom att istället för att använda asterisken jokertecken (* ) för att ange alla samlingar, angav vi uttryckligen den samling som vi vill återställa.

Byt namn på en samling

Du kan använda --nsFrom och --nsTo parametrar för att ange ett nytt namn för samlingen.

Exempel:

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

Detta byter namn på pets samling till pets2 .

Observera att koden ovan även återställer alla andra databaser och samlingar i dump/ katalog. Den enda skillnaden är att pets samlingen återställs som pets2 .

Om du bara vill återställa en enskild samling (och byta namn på den i processen), använd sedan --nsInclude parameter.

Exempel:

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

Byt namn på en databas

Du kan använda samma koncept för att byta namn på en databas. Använd bara --nsFrom och --nsTo parametrar för att ange ett nytt namn för databasen.

Exempel:

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

I det här fallet döpte jag om PetHotel databas till PetHouse .

Observera att --nsInclude parametern anger ny Databas namn. Jag använder också asterisken jokertecken (* ) för att återställa alla samlingar i den databasen.

Uteslut samlingar

Du kan använda --nsExclude parameter för att ange en samling som ska uteslutas från återställningsprocessen.

Exempel:

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

Det exemplet återställer alla samlingar i PetHotel databas förutom dogs samling.

Du kan använda --nsExclude flera gånger för att utesluta flera samlingar från återställningsprocessen.

Exempel:

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

Åtkomstkontroll/autentisering

De tidigare exemplen gjordes på den lokala datorn med standardporten. Detta innebar att vi kunde köra mongodump utan att ange saker som --host , --port , --username , etc.

Här är ett exempel som använder dessa parametrar för att autentisera som homer :

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

Vi kunde också ha använt --password parameter, men det gjorde vi inte. Om du skickar --user men inte --password , kommer du att bli ombedd att ange lösenordet.

Återställ från komprimerade filer

Du kan använda --gzip parameter för att återställa från komprimerade filer eller dataström skapad av mongodump --gzip .

Exempel:

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

Tyst läge

Du kan använda --quiet parameter för att begränsa utdata i ditt terminal- eller kommandotolkfönster.

mongorestore --quiet

Utan att använda detta kommer du förmodligen att se en stor lista över vyer, samlingar etc som återställs.

Verbose Mode

På baksidan kan du använda --verbose eller -v parametrar för att öka utdata i din terminal eller kommandotolksfönster.

mongorestore --verbose

Du kan öka utförligheten genom att upprepa -v form flera gånger.

Exempel:

mongorestore -vvvv

Mer information om mongodump

mongorestore verktyget accepterar många andra användbara parametrar, och det finns också olika faktorer att ta hänsyn till när du använder det som en del av en säkerhetskopierings- och återställningsstrategi.

Se mongorestore dokumentation på MongoDB-webbplatsen för mer information.

Andra alternativ

mongodump och mongorestore är enkla och effektiva verktyg för att säkerhetskopiera och återställa små MongoDB-distributioner, men är inte idealiska för att ta säkerhetskopior av större system.

Se MongoDB Backup Methods på MongoDB-webbplatsen för andra metoder för att säkerhetskopiera och återställa dina MongoDB-databaser.


  1. MongoDB-normalisering, främmande nyckel och sammanfogning

  2. Redis Expire fungerar inte

  3. Söksträng med specialtecken i MongoDB-dokument

  4. Hur man får klienten att ladda ner en mycket stor fil som genereras i farten