For at oprette en sikkerhedskopi i MongoDB skal du enten kopiere filerne direkte eller bruge et af flere sikkerhedskopierings-/administrationsværktøjer.
Der er flere måder at sikkerhedskopiere en MongoDB-database på:
- Kopiér datafilerne
- Brug
mongodump
- Brug MongoDB Cloud Manager
- Brug Ops Manager
Kopiér datafilerne
Du kan kopiere de underliggende datafiler, som MongoDB bruger til at gemme data. Disse findes i databiblioteket.
Standardplaceringen af databiblioteket er /data/db , men hvis du bruger en anden placering, skal du bruge den i stedet for.
Du bør kopiere hele mappen for at få en komplet sikkerhedskopi.
Du kan også bruge snapshots, hvis lydstyrken understøtter det. På Linux skal du f.eks. bruge LVM (Logical Volume Manager) til at oprette et øjebliksbillede, hvorefter du kan kopiere fra det øjebliksbillede til dit backup-sted/fjernplacering.
Brug mongodump
Du kan bruge mongodump
for at sikkerhedskopiere dataene og mongorestore
for at gendanne den.
For hurtigt at tage backup af alt indhold på den kørende server skal du åbne en ny terminal/kommandoprompt, skifte til en mappe, som du vil have /dump mappe, der skal oprettes i, og skriv følgende:
mongodump
Du skal angive den fulde sti, hvis MongoDB bin-biblioteket ikke er i din PATH.
Hvis du opdager, at du ikke kan køre mongodump , vær sikker på, at du enten har forladt mongo hjælpeprogram, eller åbnet et nyt terminal-/kommandopromptvindue, før du kørte mongodump , da det er et separat hjælpeprogram.
Resulterende besked:
2016-07-12T15:44:34.467+0700 writing music.artists to 2016-07-12T15:44:34.467+0700 writing music.musicians to 2016-07-12T15:44:34.467+0700 writing music.catalog to 2016-07-12T15:44:34.468+0700 done dumping music.artists (13 documents) 2016-07-12T15:44:34.469+0700 done dumping music.musicians (10 documents) 2016-07-12T15:44:34.469+0700 done dumping music.catalog (10 documents) 2016-07-12T15:44:34.470+0700 writing music.producers to 2016-07-12T15:44:34.470+0700 writing music.jazz to 2016-07-12T15:44:34.470+0700 done dumping music.producers (5 documents) 2016-07-12T15:44:34.470+0700 done dumping music.jazz (1 document) 2016-07-12T15:44:34.534+0700 writing test.restaurants to 2016-07-12T15:44:34.705+0700 done dumping test.restaurants (25359 documents)
Og sådan ser det ud på min Macs Finder:
Som du kan se, har den oprettet en mappe kaldet dump , derefter en mappe for hver database, og dumpede derefter alle samlinger og deres metadata i den respektive databasemappe. Jeg har udvidet musikken databasemappen for at vise filerne i den mappe.
Bemærk, at mongodump
overskriver outputfiler, hvis de findes i backupdatamappen, så sørg for at flytte eller omdøbe alle filer, du skal beholde, før du kører mongodump
igen.
Sikkerhedskopier en enkelt database
Du kan sikkerhedskopiere en enkelt database ved at angive navnet på databasen i --db
parameter:
mongodump --db=music
Sikkerhedskopier en enkelt samling
Du kan sikkerhedskopiere en enkelt samling ved at angive navnet på samlingen i --collection
parameter:
mongodump --db=music --collection=artists
Angiv en sikkerhedskopiplacering
Brug --out
parameter for at angive den mappe, som du ønsker, at sikkerhedskopien skal skrives til:
mongodump --db music --out /data/backups
Flere muligheder
mongodump
har mange flere muligheder for at specificere, hvordan dataene sikkerhedskopieres. Du kan altid køre mongodump --help
for at se, hvilke muligheder der er tilgængelige.
Gendannelse af en mongodump
Sikkerhedskopiering
Du kan gendanne enhver mongodump
backup ved at køre mongorestore
. som fungerer på samme måde som mongodump
.
Se mongorestore --help
for mere info.
mongodump
og mongorestore
er hovedsageligt beregnet til mindre implementeringer og til delvis backup og gendannelse baseret på en forespørgsel, synkronisering fra produktions- til iscenesættelses- eller udviklingsmiljøer eller ændring af storage-motoren i en selvstændig.
Til større systemer eller sharded clusters eller replikasæt skal du bruge et mere robust backupsystem, såsom MongoDB Cloud Manager eller Ops Manager.
MongoDB Cloud Manager
MongoDB Cloud Manager er en hostet platform til at administrere MongoDB.
Du kan bruge MongoDB Cloud Manager til løbende at sikkerhedskopiere MongoDB-replikasæt og shardede klynger ved at læse oplog-dataene fra din MongoDB-implementering.
MongoDB Cloud Manager fungerer på abonnementsbasis. Mere info her.
Ops Manager
Ops Manager er ligesom MongoDB Cloud Manager, bortset fra at den er installeret på dit lokale miljø (dvs. ikke i skyen). Så du kan bruge det til overvågning, automatisering og backup af din MongoDB-implementering.
Ops Manager er tilgængelig for MongoDB-abonnenter.