För att skapa en säkerhetskopia i MongoDB, kopiera antingen filerna direkt eller använd ett av flera verktyg för säkerhetskopiering/hantering.
Det finns flera sätt att säkerhetskopiera en MongoDB-databas:
- Kopiera datafilerna
- Använd
mongodump
- Använd MongoDB Cloud Manager
- Använd Ops Manager
Kopiera datafilerna
Du kan kopiera de underliggande datafilerna som MongoDB använder för att lagra data. Dessa finns i datakatalogen.
Standardplatsen för datakatalogen är /data/db , men om du använder en annan plats måste du använda den istället.
Du bör kopiera hela katalogen för en fullständig säkerhetskopia.
Du kan också använda ögonblicksbilder om volymen stöder det. Till exempel, på Linux, använd LVM (Logical Volume Manager) för att skapa en ögonblicksbild, sedan kan du kopiera från den ögonblicksbilden till din säkerhetskopieringsplats/fjärrplats.
Använd mongodump
Du kan använda mongodump
för att säkerhetskopiera data och mongorestore
för att återställa den.
För att snabbt säkerhetskopiera allt innehåll på den körande servern, öppna en ny terminal/kommandotolk, byt till en katalog som du vill ha /dump mapp som ska skapas i och skriv följande:
mongodump
Du måste ange den fullständiga sökvägen om MongoDB bin-katalogen inte finns i din PATH.
Om du upptäcker att du inte kan köra mongodump , se till att du antingen har lämnat mongo verktyg, eller öppnade ett nytt terminal-/kommandotolkfönster innan du körde mongodump , eftersom det är ett separat verktyg.
Resultatmeddelande:
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)
Och så här ser det ut på min Macs Finder:
Som du kan se har den skapat en mapp som heter dump , sedan en mapp för varje databas, dumpade sedan alla samlingar och deras metadata till respektive databasmapp. Jag har utökat musiken databasmappen för att visa filerna i den katalogen.
Observera att mongodump
skriver över utdatafiler om de finns i backupdatamappen, så se till att flytta eller byta namn på alla filer du behöver behålla innan du kör mongodump
igen.
Säkerhetskopiera en enda databas
Du kan säkerhetskopiera en enskild databas genom att ange namnet på databasen i --db
parameter:
mongodump --db=music
Säkerhetskopiera en enda samling
Du kan säkerhetskopiera en enskild samling genom att ange namnet på samlingen i --collection
parameter:
mongodump --db=music --collection=artists
Ange en säkerhetskopieringsplats
Använd --out
parameter för att ange katalogen som du vill att säkerhetskopian ska skrivas till:
mongodump --db music --out /data/backups
Fler alternativ
mongodump
har många fler alternativ för att ange hur data säkerhetskopieras. Du kan alltid köra mongodump --help
för att se vilka alternativ som är tillgängliga.
Återställer en mongodump
Säkerhetskopiering
Du kan återställa vilken mongodump
som helst säkerhetskopiera genom att köra mongorestore
. som fungerar på liknande sätt som mongodump
.
Se mongorestore --help
för mer information.
mongodump
och mongorestore
är huvudsakligen avsedda för mindre distributioner och för partiell säkerhetskopiering och återställning baserat på en fråga, synkronisering från produktions- till staging- eller utvecklingsmiljöer, eller för att ändra lagringsmotorn för en fristående.
För större system, eller splittrade kluster eller replikuppsättningar, använd ett mer robust backupsystem, som MongoDB Cloud Manager eller Ops Manager.
MongoDB Cloud Manager
MongoDB Cloud Manager är en värdbaserad plattform för att hantera MongoDB.
Du kan använda MongoDB Cloud Manager för att kontinuerligt säkerhetskopiera MongoDB-replikuppsättningar och fragmenterade kluster genom att läsa oplogdata från din MongoDB-distribution.
MongoDB Cloud Manager fungerar på prenumerationsbasis. Mer information här.
Ops Manager
Ops Manager är som MongoDB Cloud Manager, förutom att den är installerad på din lokala miljö (dvs inte i molnet). Så du kan använda den för att övervaka, automatisera och säkerhetskopiera din MongoDB-distribution.
Ops Manager är tillgänglig för MongoDB-prenumeranter.