sql >> Database >  >> NoSQL >> MongoDB

MongoDB-back-upopties begrijpen

Workflows voor back-up en herstel zijn uiterst belangrijk voor elk MongoDB-productiecluster. Afgezien van de daadwerkelijke functionaliteit van back-up en herstel, moet u ook rekening houden met andere niet-functionele functies, zoals de beschikbaarheid van back-ups, beveiliging, hersteltijd, granulariteit van het herstel, enz. Op een hoog niveau hebt u drie opties om een ​​back-up van uw MongoDB-server te maken:

  1. Mongodump / Mongorestore
  2. MongoDB Cloud Manager
  3. Schijfmomentopnamen

Elk van de drie bovenstaande technieken heeft zijn eigen voor- en nadelen. Lees hieronder voor meer informatie.

1. Mongodump /Mongorestore

Mongodump is de "aan de slag" back-uptool voor de meeste MongoDB-ontwikkelaars. Dit is waarschijnlijk hoe de meeste ontwikkelaars beginnen met het maken van back-ups van hun MongoDB-database. De Mongodump-tool is heel eenvoudig te gebruiken en dumpt alle gegevens in de database in binair formaat (BSON) die u op een locatie naar keuze kunt opslaan.

Pluspunten:

  1. Eenvoudig te gebruiken.
  2. Flexibiliteit in waar de back-up wordt opgeslagen - zodra de dump is voltooid, kunt u deze naar elke gewenste locatie verplaatsen - NFS-shares, AWS S3, enz.

Nadelen:

  1. Volledige back-up, elke keer - Het is een volledige back-up, geen verschil met uw vorige back-up. Dus naarmate uw database groter wordt, kan het uren duren om de back-up te voltooien en is het onpraktisch om op te slaan.
  2. Geen tijdstip – Back-up gemaakt door mongodump is standaard geen momentopname. Dus als uw gegevens tijdens de back-up veranderen, kunt u eindigen met een mongodump die inconsistent is vanuit een toepassingsperspectief. U kunt dit verhelpen door de optie "–oplog" te gebruiken die een momentopname maakt aan het einde van het mongodump-proces. Deze optie is echter niet beschikbaar voor zelfstandige databases

2. MongoDB Cloudmanager

Cloud Manager is een cloudservice die wordt geleverd door het MongoDB-team om u te helpen een back-up te maken van uw MongoDB-cluster.

Pluspunten:

  1. Eenvoudig te gebruiken – Installeer de MongoDB Cloud Manager-agent om de back-up/herstel van uw cluster te beheren. Het is iets ingewikkelder dan het gebruik van mongodump, maar niet veel.
  2. Continue back-up – De Cloud Manager bevraagt ​​continu en maakt een back-up van uw oplog. Dit stelt u dus in staat om te herstellen naar een willekeurig tijdstip in plaats van naar specifieke tijden waarop de back-up is gemaakt, waardoor uw blootstelling aan gegevensverlies tot een minimum wordt beperkt.

Nadelen:

  1. Gegevensbeheer – De back-upgegevens worden buiten uw controle opgeslagen in het MongoDB-datacenter. In sommige delen van de wereld (bijv. Europa) en afhankelijk van uw beveiligingsbehoeften, kan dit een groot probleem zijn.
  2. Extra kosten – U betaalt op basis van de grootte van de gegevens en het aantal oplogwijzigingen. Als u een grote database heeft of veel schrijfbewerkingen, kunnen deze kosten oplopen.
  3. Langzaam herstel – Om uw gegevens uit de MongoDB Cloud Manager te herstellen, moeten de gegevens fysiek worden gedownload uit het datacentrum van Cloud Manager. Dit kan een zeer tijdrovende handeling zijn als u een grote database heeft. Als uw gegevens bijvoorbeeld 1 TB zijn, kan het enkele uren duren om de gegevens te downloaden en te gebruiken.

3. Schijf snapshots

Snapshots kunnen op cloudniveau zijn (bijv. AWS EBS-schijfsnapshots) of op OS-niveau (LVM-snapshots). LVM-snapshots, hoewel handig, zijn niet gemakkelijk overdraagbaar buiten de machine. Daarom gaan we ons voor de rest van deze discussie concentreren op snapshots van cloudschijven zoals AWS EBS-snapshots.

Pluspunten:

  1. Eenvoudig en gemakkelijk te gebruiken – Relatief triviaal om een ​​momentopname van een EBS-schijf te activeren.
  2. Draagbaarheid – U kunt uw snapshots naar andere datacenters verplaatsen als u een hogere beschikbaarheid voor uw back-ups nodig heeft.
  3. Verschillende momentopnamen – De snapshots zijn verschillende snapshots, dus ze slaan alleen de wijzigingen op van uw vorige snapshot. Dit vermindert de hoeveelheid opslagruimte die nodig is voor uw back-up.
  4. Geen gegevenskopie – Er is geen gegevenskopie nodig om uw gegevens te herstellen. bijv. Als u een snapshot van 1 TB wilt herstellen, kunt u gewoon een nieuw volume van de snapshot maken en dit resulteert niet in een daadwerkelijke gegevenskopie. Dit is een * big deal *  als je te maken hebt met grote hoeveelheden gegevens.
  5. Back-upbeheer – De back-ups blijven in hetzelfde datacenter als uw primaire gegevens en worden beveiligd door dezelfde authenticatiemechanismen als uw primaire gegevensservers.

Nadelen:

  1. Geen continue back-up – Het is een point-in-time back-up en kan alleen worden hersteld naar de back-uppunten.
  2. Fysieke machines - Van fysieke machines op locatie kan geen back-up worden gemaakt met deze techniek.

Aan het eind van de dag, als uw gegevens klein zijn, zullen alle drie de opties goed werken. Wanneer u grotere hoeveelheden gegevens begint te krijgen, moet u tijd besteden aan het kiezen van de optie die het beste bij uw scenario past.


  1. MongoDB Vind Exact Array Match, maar de volgorde doet er niet toe

  2. MongoDB - Equivalent van LEFT JOIN waar één verzameling niet bestaat

  3. MongoDB kan de server niet starten:de standaard opslagengine 'wiredTiger' is niet beschikbaar met deze build van mongod

  4. Mangoest verschil tussen .save() en het gebruik van update()