Sikkerhedskopierings- og gendannelsesarbejdsgange er ekstremt vigtige for enhver MongoDB-produktionsklynge. Udover den faktiske funktionalitet af sikkerhedskopiering og gendannelse, skal du også overveje andre ikke-funktionelle funktioner som tilgængelighed af sikkerhedskopier, sikkerhed, gendannelsestid, gendannelsesgranularitet osv. På et højt niveau har du tre muligheder for at sikkerhedskopiere din MongoDB-server:
- Mongodump / Mongorestore
- MongoDB Cloud Manager
- Snapshots fra disk
Hver af de tre ovenstående teknikker har sine egne fordele og ulemper. Læs nedenfor for at forstå mere detaljeret.
1. Mongodump / Mongorestore
Mongodump er sikkerhedskopieringsværktøjet "kom godt i gang" for de fleste MongoDB-udviklere. Det er sandsynligvis sådan, de fleste udviklere begynder at sikkerhedskopiere deres MongoDB-database. Mongodump-værktøjet er virkelig nemt at bruge og dumper alle data i databasen i binært format (BSON), som du kan gemme på en lokation efter eget valg.
Fordele:
- Enkel at bruge.
- Fleksibilitet i, hvor sikkerhedskopien er gemt - når dumpet er færdigt, kan du flytte det til et hvilket som helst sted efter eget valg – NFS-shares, AWS S3 osv.
Idele:
- Fuld backup, hver gang - Det er en fuld backup, ikke en forskel fra din tidligere backup. Så efterhånden som din database bliver stor, kan det tage timer at fuldføre sikkerhedskopieringen og er uhåndterlig at gemme.
- Ikke et tidspunkt – Sikkerhedskopiering oprettet af mongodump er som standard ikke et øjebliksbillede. Så hvis dine data ændrer sig under sikkerhedskopieringen, kan du ende med en mongodump, der er inkonsekvent fra et applikationsperspektiv. Du kan afhjælpe dette ved at bruge "–oplog", som tager et øjebliksbillede i slutningen af mongodump-processen. Denne mulighed er dog ikke tilgængelig for selvstændige databaser
2. MongoDB Cloud manager
Cloud Manager er en skytjeneste leveret af MongoDB-teamet for at hjælpe dig med at sikkerhedskopiere din MongoDB-klynge.
Fordele:
- Enkel at bruge – Installer MongoDB Cloud Manager-agenten for at administrere backup/gendannelse af din klynge. Det er lidt mere kompliceret end at bruge mongodump, men ikke ret meget.
- Kontinuerlig backup – Cloud Manager forespørger og sikkerhedskopierer løbende din oplog. Så dette giver dig mulighed for at gendanne til ethvert tidspunkt i stedet for bestemte tidspunkter, hvor sikkerhedskopien blev taget, hvilket minimerer din eksponering for datatab.
Idele:
- Datakontrol – Sikkerhedskopieringsdataene gemmes i MongoDB-datacenteret uden for din kontrol. I nogle dele af verden (f.eks. Europa) og afhængigt af dine sikkerhedsbehov kan dette være et stort problem.
- Ekstra udgift – Du betaler efter størrelsen af dataene og mængden af oplog-ændringer. Hvis du har en stor database eller et højt antal skrivninger, kan disse omkostninger stige.
- Langsomme gendannelser – For at gendanne dine data fra MongoDB Cloud Manager, skal dataene fysisk downloades fra Cloud Manager datacenter. Dette kan være en meget tidskrævende operation, hvis du har en stor database, hvis dine data f.eks. er 1 TB, kan det tage flere timer at downloade og bruge dataene.
3. Disksnapshots
Snapshots kan enten være på skyniveau (f.eks. AWS EBS-disksnapshots) eller OS-niveau (LVM-snapshots). LVM-snapshots, selvom de er praktiske, er ikke nemme at transportere uden for maskinen. Derfor vil vi i resten af denne diskussion fokusere på skydisksnapshots som AWS EBS-snapshots.
Fordele:
- Simpel og nem at bruge – Relativt trivielt at udløse et øjebliksbillede af en EBS-disk.
- Portabilitet – Du kan flytte dine snapshots til andre datacentre, hvis du har brug for højere tilgængelighed til dine sikkerhedskopier.
- Forskellige øjebliksbilleder – Snapshots er forskellige snapshots, så de gemmer kun ændringerne fra dit tidligere snapshot. Dette reducerer mængden af lagerplads, der kræves af din backup.
- Ingen datakopi – Der er ingen datakopi involveret til at gendanne dine data. For eksempel. Hvis du vil gendanne et 1TB snapshot, kan du bare oprette en ny volumen fra snapshotet, og dette resulterer ikke i nogen egentlig datakopi. Dette er en * big deal * når der håndteres store mængder data.
- Sikkerhedskopiering – Sikkerhedskopierne forbliver i det samme datacenter som dine primære data og er sikret af de samme godkendelsesmekanismer som dine primære dataservere.
Idele:
- Ikke en kontinuerlig sikkerhedskopiering – Det er en punkt-i-tids-backup og kan kun gendannes til backup-punkterne.
- Fysiske maskiner - Fysiske maskiner på stedet kan ikke sikkerhedskopieres ved hjælp af denne teknik.
I slutningen af dagen, hvis dine data er små, vil alle tre muligheder fungere godt. Når du begynder at have større mængder data, bliver du nødt til at bruge tid og vælge den mulighed, der passer bedst til dit scenario.