sql >> Databasteknik >  >> NoSQL >> MongoDB

Förstå MongoDB-säkerhetskopieringsalternativ

Arbetsflöden för säkerhetskopiering och återställning är extremt viktiga för alla MongoDB-produktionskluster. Bortsett från den faktiska funktionaliteten för säkerhetskopiering och återställning måste du också överväga andra icke-funktionella funktioner som tillgängligheten av säkerhetskopior, säkerhet, återställningstid, återställningsgranularitet, etc. På en hög nivå har du tre alternativ för att säkerhetskopiera din MongoDB-server:

  1. Mongodump / Mongorestore
  2. MongoDB Cloud Manager
  3. Snapshots från disk

Var och en av ovanstående tre tekniker har sina egna för- och nackdelar. Läs nedan för att förstå mer detaljerat.

1. Mongodump / Mongorestore

Mongodump är säkerhetskopieringsverktyget "att komma igång" för de flesta MongoDB-utvecklare. Det är förmodligen så de flesta utvecklare börjar säkerhetskopiera sin MongoDB-databas. Mongodump-verktyget är väldigt enkelt att använda och dumpar all data i databasen i binärt format (BSON) som du kan lagra på en plats som du väljer.

Fördelar:

  1. Enkel att använda.
  2. Flexibilitet i var säkerhetskopian lagras - när dumpningen är klar kan du flytta den till valfri plats – NFS-andelar, AWS S3, etc.

Nackdelar:

  1. Fullständig säkerhetskopiering, varje gång – Det är en fullständig säkerhetskopia, inte en skillnad från din tidigare säkerhetskopia. Så eftersom din databas blir stor kan det ta timmar att slutföra säkerhetskopieringen och är svår att lagra.
  2. Inte en tidpunkt – Säkerhetskopiering skapad av mongodump är som standard inte en ögonblicksbild. Så om dina data ändras under säkerhetskopieringen kan du sluta med en mongodump som är inkonsekvent ur ett applikationsperspektiv. Du kan åtgärda detta genom att använda alternativet "–oplog" som tar en ögonblicksbild i slutet av mongodump-processen. Det här alternativet är dock inte tillgängligt för fristående databaser

2. MongoDB Cloud Manager

Cloud Manager är en molntjänst som tillhandahålls av MongoDB-teamet för att hjälpa dig att säkerhetskopiera ditt MongoDB-kluster.

Fördelar:

  1. Enkel att använda – Installera MongoDB Cloud Manager-agenten för att hantera säkerhetskopieringen/återställningen av ditt kluster. Det är lite mer komplicerat än att använda mongodump, men inte så mycket.
  2. Kontinuerlig säkerhetskopiering – Cloud Manager frågar och säkerhetskopierar kontinuerligt din oplog. Så detta gör att du kan återställa till vilken tidpunkt som helst istället för specifika tidpunkter då säkerhetskopieringen togs, vilket minimerar din exponering för dataförlust.

Nackdelar:

  1. Datakontroll – Säkerhetskopieringsdata lagras i MongoDB datacenter utanför din kontroll. I vissa delar av världen (t.ex. Europa) och beroende på dina säkerhetsbehov kan detta vara ett stort problem.
  2. Extra kostnad – Du betalar efter storleken på datan och mängden oplogändringar. Om du har en stor databas eller ett stort antal skrivningar, kan denna kostnad öka.
  3. Långsamma återställningar – För att kunna återställa dina data från MongoDB Cloud Manager måste data laddas ner fysiskt från Cloud Managers datacenter. Detta kan vara en mycket tidskrävande operation om du har en stor databas, om din data till exempel är 1 TB kan det ta flera timmar att ladda ner och använda datan.

3. Diskögonblicksbilder

Ögonblicksbilder kan antingen vara på molnnivå (t.ex. AWS EBS-skiva ögonblicksbilder) eller OS-nivå (LVM ögonblicksbilder). LVM-ögonblicksbilder är, även om de är bekväma, inte lätta att bära utanför maskinen. För resten av den här diskussionen kommer vi därför att fokusera på ögonblicksbilder av molnskivor som AWS EBS-ögonblicksbilder.

Fördelar:

  1. Enkel och lätt att använda – Relativt trivialt att trigga en ögonblicksbild av en EBS-disk.
  2. Bärbarhet – Du kan flytta dina ögonblicksbilder till andra datacenter om du behöver högre tillgänglighet för dina säkerhetskopior.
  3. Diff-ögonblicksbilder – Ögonblicksbilderna är olika ögonblicksbilder, så de lagrar bara ändringarna från din tidigare ögonblicksbild. Detta minskar mängden lagringsutrymme som behövs för din säkerhetskopia.
  4. Ingen datakopia – Det finns ingen datakopia inblandad för att återställa dina data. T.ex. Om du vill återställa en 1TB ögonblicksbild kan du bara skapa en ny volym från ögonblicksbilden och detta resulterar inte i någon faktisk datakopia. Detta är en * big deal *  när man hanterar stora mängder data.
  5. Säkerhetskopieringskontroll – Säkerhetskopiorna förblir i samma datacenter som dina primära data och säkras med samma autentiseringsmekanismer som dina primära dataservrar.

Nackdelar:

  1. Inte en kontinuerlig säkerhetskopiering – Det är en punkt-i-tid backup och kan bara återställas till backup-punkterna.
  2. Fysiska maskiner – Fysiska maskiner på plats kan inte säkerhetskopieras med den här tekniken.

I slutet av dagen, om din data är liten, kommer alla tre alternativen att fungera bra. När du börjar ha större mängder data måste du spendera tid och välja det alternativ som fungerar bäst för ditt scenario.


  1. batchSize-fältnamn ignoreras i Field Projection

  2. Index på ts-fältet i oplog.rs uppdateras inte

  3. mongodb 3.4.3 Tillstånd nekad widtiger_kv_engine.cpp 267 fel med ubuntu 16

  4. Hur man installerar MongoDB