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:
- Mongodump / Mongorestore
- MongoDB Cloud Manager
- 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:
- Eenvoudig te gebruiken.
- 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:
- 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.
- 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:
- 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.
- 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:
- 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.
- 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.
- 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:
- Eenvoudig en gemakkelijk te gebruiken – Relatief triviaal om een momentopname van een EBS-schijf te activeren.
- Draagbaarheid – U kunt uw snapshots naar andere datacenters verplaatsen als u een hogere beschikbaarheid voor uw back-ups nodig heeft.
- 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.
- 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.
- Back-upbeheer – De back-ups blijven in hetzelfde datacenter als uw primaire gegevens en worden beveiligd door dezelfde authenticatiemechanismen als uw primaire gegevensservers.
Nadelen:
- Geen continue back-up – Het is een point-in-time back-up en kan alleen worden hersteld naar de back-uppunten.
- 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.