sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man säkerhetskopierar din Open edX MongoDB-databas

Open edX är ett projekt med öppen källkod för onlineinlärning utvecklat av MIT- och Harvard-teamet. Det är en webbaserad applikation med många komponenter som studentinriktning, kursförfattande, kursleverans och innehållshantering.

Open edX är byggt i Python och använder Django som ett webbramverk. Den använder MongoDB som en databasbackend. När man bygger och ställer upp en Open edX-miljö måste man tänka på tjänstens upptid eftersom plattformen används flitigt av eleven och eleven som en öppen plattform.

Hög tillgänglighet är ett måste för MongoDB-databaser, bredvid applikationsservern också. För katastrofåterställning är en sund säkerhetskopieringsstrategi nyckeln så att du vet att du kan återställa data om något går riktigt fel.

I den här bloggen kommer vi att granska hur du säkerhetskopierar din Open edX MongoDB-databas.

Förbereder säkerhetskopieringslagringen

Det första vi behöver göra är att förbereda lagringen för MongoDB-säkerhetskopian. Du kan placera säkerhetskopiorna på samma infrastruktur som Open edX-tjänsterna och sedan arkivera dem utanför platsen. Du kan använda Storage Area Network (SAN) eller Network Attached Storage där den är monterad på en av MongoDB-servrarna. AWS tillhandahåller en enkel lagringstjänst som heter S3 för att arkivera dina säkerhetskopior, medan Google Cloud Platform har Cloud Storage.

Det är on-demand-tjänst och prismodellen baseras på per GiB-storlek på din backup. För säkerhets skull kan du åtminstone lägga säkerhetskopian av din Open edX-databas på 2 olika områden; som är på din premiss och på molnet.

Manuell säkerhetskopiering för MongoDB

Säkerhetskopiering för MongoDB-databaser använder vanligtvis mongodump-verktyget som medföljer när du installerar MongoDB-servern. Du kan ta en säkerhetskopia i en av MongoDB-servrarna, kör bara mongodumpen som visas nedan:

$ mongodump --db edxapp --out /backups/open-edx/`date +"%m-%d-%y"`

2021-01-11T11:23:42.541-0500    writing edxapp.module to /backups/open-edx/01-11-21/edxapp/module.bson

2021-01-11T11:23:42.878-0500    writing edxapp.module metadata to /backups/open-edx/01-11-21/newdb/module.metadata.json

2021-01-11T11:23:42.923-0500    done dumping edxapp.module (25359 documents)

2021-01-11T11:23:42.945-0500    writing newdb.system.indexes to /backups/open-edx/01-11-21/edxapp/system.indexes.bson

……

Det kommer att skapa en säkerhetskopia på MongoDB-värden, du kan ha ett skript för att flytta säkerhetskopieringsfilerna till någon annan lagring.

Säkerhetskopiera MongoDB för Open edX med ClusterControl

ClusterControl stöder MongoDB backup för din Open edX-plattform. Den stöder mongodump och vi har precis lagt till stöd för en ny säkerhetskopieringsmetod som heter PBM (Percona Backup for MongoDB), som skulle vara mer lämplig för fragmenterade MongoDB-kluster. Att säkerhetskopiera med mongodump i ClusterControl är mycket enkelt med hjälp av en GUI-baserad guide. Välj fliken Säkerhetskopiering och sedan Skapa säkerhetskopia. Det finns två alternativ du kan välja, du kan omedelbart skapa en säkerhetskopia eller så kan du schemalägga säkerhetskopieringen.

Och klicka sedan på Fortsätt:

Välj mongodump som säkerhetskopieringsmetod och skriv sedan ner platskatalogen där du vill lägga säkerhetskopian. I det här steget kan du använda ett Storage Area Network eller Network Attached Storage som är monterat på din MongoDB-server.

ClusterControl stöder även säkerhetskopiering till molnet, för närvarande stöder vi Amazon Web Services (AWS), Google Cloud Platform och Microsoft Azure.

Du kan också aktivera kryptering för din säkerhetskopia, detta är särskilt viktigt om du arkiverar i molnet. Därefter trycker du bara på Skapa säkerhetskopia, det kommer att utlösa ett nytt jobb för säkerhetskopieringen som visas nedan:

Du kan också använda Percona Backup för MongoDB för konsekvent säkerhetskopiering av din MongoDB Replicaset och Sharded Cluster.. Välj bara percona-backup-mongodb som backupmetod, det kräver att du installerar en agent på varje nod och delad lagring som ska monteras på varje MongoDB-nod.


  1. Få en lista över unika inbäddade/kapslade objekt i ett MongoDB-dokument

  2. Låt nya ClusterControl säkra dina MongoDB-distributioner

  3. Om selleriarbetare dör hårt, blir jobbet omprövat?

  4. Hur frågar jag inifrån Mongoose pre hook i en Node.js / Express-app?