sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan sikkerhedskopieres din Open edX MongoDB-database

Open edX er et open source-projekt til online læring udviklet af MIT- og Harvard-teamet. Det er en webbaseret applikation med en masse komponenter såsom elevfacing, kursusforfattelse, kursuslevering og indholdsstyring.

Open edX er bygget i Python og bruger Django som en webramme. Det bruger MongoDB som en database-backend. Når man bygger og sætter et Open edX-miljø op, skal man tænke på tjenestens oppetid, fordi platformen er meget brugt af eleven og eleven som en åben platform.

Høj tilgængelighed er et must for MongoDB-databaser, også ved siden af ​​applikationsserveren. Til katastrofegendannelse er en sund backupstrategi nøglen, så du ved, at du kan gendanne dataene, hvis noget går rigtig galt.

I denne blog vil vi gennemgå, hvordan du sikkerhedskopierer din Open edX MongoDB-database.

Forberedelse af sikkerhedskopieringslageret

Det første, vi skal gøre, er at forberede lageret til MongoDB-sikkerhedskopien. Du kan iscenesætte sikkerhedskopierne på den samme infrastruktur som Open edX-tjenesterne og derefter arkivere dem offsite. Du kan bruge Storage Area Network (SAN) eller Network Attached Storage, hvor det er monteret på en af ​​MongoDB-serverne. AWS leverer en simpel lagertjeneste kaldet S3 til at arkivere dine sikkerhedskopier, mens Google Cloud Platform har Cloud Storage.

Det er on demand-tjeneste, og prismodellen er baseret på per GiB-størrelse af din backup. For en sikkerheds skyld kan du i det mindste placere din Open edX database backup på 2 forskellige områder; som er på din præmis, og på skyen.

Manuel sikkerhedskopiering til MongoDB

Sikkerhedskopiering til MongoDB-databaser bruger typisk mongodump-værktøjet, som er bundtet, når du installerer MongoDB-serveren. Du kan tage en sikkerhedskopi i en af ​​MongoDB-serverne, bare kør mongodumpen som vist nedenfor:

$ 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 vil oprette en sikkerhedskopi på MongoDB-værten, du kan have et script til at flytte backupfilerne til et andet lager.

Backup MongoDB til Open edX ved hjælp af ClusterControl

ClusterControl understøtter MongoDB backup til din Open edX platform. Det understøtter mongodump, og vi har lige tilføjet understøttelse af en ny backup-metode kaldet PBM (Percona Backup for MongoDB), som ville være mere passende for sharded MongoDB-klynger. Det er meget nemt at tage backup ved hjælp af mongodump i ClusterControl ved at bruge en GUI-baseret guide. Vælg fanen Backup og derefter Opret sikkerhedskopi. Der er to muligheder, du kan vælge, du kan straks oprette en sikkerhedskopi, eller du kan planlægge sikkerhedskopieringen.

Og klik derefter på Fortsæt:

Vælg mongodump som sikkerhedskopieringsmetode, og skriv derefter placeringsmappen ned, hvor du vil lægge sikkerhedskopien. I dette trin kan du bruge et Storage Area Network eller Network Attached Storage, der er monteret på din MongoDB-server.

ClusterControl understøtter også backup til skyen, i øjeblikket understøtter vi Amazon Web Services (AWS), Google Cloud Platform og Microsoft Azure.

Du kan også aktivere kryptering til din backup, dette er især vigtigt, hvis du arkiverer i skyen. Dernæst skal du bare trykke på Opret sikkerhedskopi, det vil udløse et nyt job til sikkerhedskopieringen som vist nedenfor:

Du kan også bruge Percona Backup til MongoDB til konsekvent backup af dit MongoDB Replicaset og Sharded Cluster.. Vælg bare percona-backup-mongodb som backup-metode, det kræver, at du installerer en agent på hver node og delt lager, der skal monteres på hver MongoDB-node.


  1. Delvise indekser i mongodb / mongoose

  2. JedisPoolConfig kan ikke tildeles til GenericObjectPoolConfig

  3. Redistogo og Sidekiq på Heroku:Kan ikke oprette forbindelse

  4. Hvordan forbindes med mongodb ved hjælp af sailsjs v0.10?