Open edX ist ein Open-Source-Projekt für Online-Lernen, das vom MIT- und Harvard-Team entwickelt wurde. Es handelt sich um eine webbasierte Anwendung mit vielen Komponenten, wie z. B. Studentensicht, Kurserstellung, Kursbereitstellung und Inhaltsverwaltung.
Das Open edX ist in Python gebaut und verwendet Django als Web-Framework. Es verwendet MongoDB als Datenbank-Backend. Beim Erstellen und Einrichten einer Open edX-Umgebung muss an die Betriebszeit des Dienstes gedacht werden, da die Plattform von Schülern und Lernenden als offene Plattform weit verbreitet ist.
Hochverfügbarkeit ist ein Muss für MongoDB-Datenbanken, auch neben dem Anwendungsserver. Für die Notfallwiederherstellung ist eine solide Sicherungsstrategie entscheidend, damit Sie wissen, dass Sie die Daten wiederherstellen können, wenn etwas wirklich schief geht.
In diesem Blog besprechen wir, wie Sie Ihre Open edX MongoDB-Datenbank sichern.
Vorbereiten des Sicherungsspeichers
Als erstes müssen wir den Speicher für das MongoDB-Backup vorbereiten. Sie können die Backups auf derselben Infrastruktur wie die Open edX-Dienste bereitstellen und sie dann extern archivieren. Sie können Storage Area Network (SAN) oder Network Attached Storage verwenden, wenn es auf einem der MongoDB-Server bereitgestellt wird. AWS bietet einen einfachen Speicherdienst namens S3 zum Archivieren Ihrer Backups, während die Google Cloud Platform über Cloud Storage verfügt.
Es ist ein On-Demand-Service und das Preismodell basiert auf der Größe Ihres Backups pro GiB. Sicherheitshalber können Sie Ihr Open edX-Datenbank-Backup zumindest auf 2 verschiedene Bereiche legen; die sich bei Ihnen und in der Cloud befindet.
Manuelles Backup für MongoDB
Normalerweise verwendet die Sicherung für MongoDB-Datenbanken das Mongodump-Dienstprogramm, das bei der Installation des MongoDB-Servers mitgeliefert wird. Sie können ein Backup auf einem der MongoDB-Server erstellen, führen Sie einfach den Mongodump wie unten gezeigt aus:
$ 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
……
Es wird ein Backup auf dem MongoDB-Host erstellt, Sie können ein Skript haben, um die Backup-Dateien auf einen anderen Speicher zu verschieben.
MongoDB für Open edX mit ClusterControl sichern
ClusterControl unterstützt MongoDB-Backup für Ihre Open edX-Plattform. Es unterstützt Mongodump und wir haben gerade Unterstützung für eine neue Sicherungsmethode namens PBM (Percona Backup for MongoDB) hinzugefügt, die besser für Sharding-MongoDB-Cluster geeignet wäre. Das Erstellen von Backups mit Mongodump in ClusterControl ist mit einem GUI-basierten Assistenten sehr einfach. Wählen Sie die Registerkarte Backup und dann Backup erstellen. Sie können zwischen zwei Optionen wählen:Sie können sofort eine Sicherung erstellen oder die Sicherung planen.
Und klicken Sie dann einfach auf Weiter:
Wählen Sie Mongodump als Sicherungsmethode und notieren Sie sich dann das Speicherortverzeichnis, in dem Sie möchten die Sicherung setzen. In diesem Schritt können Sie ein Storage Area Network oder Network Attached Storage verwenden, das auf Ihrem MongoDB-Server gemountet ist.
ClusterControl unterstützt auch Backups in die Cloud, derzeit unterstützen wir Amazon Web Services (AWS), Google Cloud Platform und Microsoft Azure.
Sie können auch die Verschlüsselung für Ihr Backup aktivieren, dies ist besonders wichtig, wenn Sie archivieren in der Cloud. Als nächstes drücken Sie einfach Backup erstellen, es wird einen neuen Job für das Backup auslösen, wie unten gezeigt:
Sie können auch Percona Backup for MongoDB für eine konsistente Sicherung Ihres MongoDB-Replicasets verwenden und Sharded Cluster.. Wählen Sie einfach die percona-backup-mongodb als Sicherungsmethode aus, es erfordert, dass Sie einen Agenten auf jedem Knoten installieren und gemeinsam genutzten Speicher auf jedem MongoDB-Knoten bereitstellen müssen.