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.