sql >> Databáze >  >> NoSQL >> MongoDB

Jak zálohovat vaši otevřenou databázi edX MongoDB

Open edX je open source projekt pro online výuku vyvinutý týmem MIT a Harvardu. Jedná se o webovou aplikaci se spoustou komponent, jako je orientace studentů, tvorba kurzů, poskytování kurzů a správa obsahu.

Open edX je postaven v Pythonu a používá Django jako webový rámec. Používá MongoDB jako databázový backend. Při budování a nastavování prostředí Open edX je třeba myslet na dobu provozuschopnosti služby, protože tuto platformu studenti a studenti široce využívají jako otevřenou platformu.

Vysoká dostupnost je nutností pro databáze MongoDB vedle aplikačního serveru. Pro obnovu po havárii je klíčová strategie zdravého zálohování, abyste věděli, že můžete data obnovit, pokud se něco opravdu pokazí.

V tomto blogu se podíváme na to, jak zálohovat databázi Open edX MongoDB.

Příprava úložiště záloh

První věc, kterou musíme udělat, je připravit úložiště pro zálohu MongoDB. Zálohy můžete vytvořit na stejné infrastruktuře jako služby Open edX a poté je archivovat mimo pracoviště. Můžete použít Storage Area Network (SAN) nebo Network Attached Storage, kde je připojeno k jednomu ze serverů MongoDB. AWS poskytuje jednoduchou službu úložiště s názvem S3 k archivaci vašich záloh, zatímco Google Cloud Platform má cloudové úložiště.

Je to služba na vyžádání a cenový model je založen na velikosti GiB vaší zálohy. Pro bezpečnost můžete alespoň umístit zálohu databáze Open edX na 2 různé oblasti; který je ve vaší premise a v cloudu.

Ruční zálohování pro MongoDB

Pro zálohování databází MongoDB se obvykle používá nástroj mongodump, který je součástí dodávky serveru MongoDB. Můžete si udělat zálohu na jednom ze serverů MongoDB, stačí spustit mongodump, jak je uvedeno níže:

$ 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

……

Vytvoří zálohu na hostiteli MongoDB, můžete mít skript pro přesun souborů zálohy na jiné úložiště.

Zálohování MongoDB pro Open edX pomocí ClusterControl

ClusterControl podporuje zálohování MongoDB pro vaši platformu Open edX. Podporuje mongodump a právě jsme přidali podporu pro novou metodu zálohování nazvanou PBM (Percona Backup for MongoDB), která by byla vhodnější pro sharded MongoDB Clusters. Zálohování pomocí mongodump v ClusterControl je velmi snadné pomocí průvodce založeného na GUI. Vyberte kartu Záloha a poté Vytvořit zálohu. Můžete si vybrat ze dvou možností, můžete okamžitě vytvořit zálohu nebo můžete zálohování naplánovat.

A pak už jen klikněte na Pokračovat:

Zvolte mongodump jako metodu zálohování a zapište si adresář umístění, kam chcete vložit zálohu. V tomto kroku můžete použít Storage Area Network nebo Network Attached Storage, které je připojeno k vašemu serveru MongoDB.

ClusterControl také podporuje zálohování do cloudu, v současnosti podporujeme Amazon Web Services (AWS), Google Cloud Platform a Microsoft Azure.

Můžete také povolit šifrování pro zálohu, což je zvláště důležité, pokud se archivují v cloudu. Dále stačí stisknout Vytvořit zálohu, spustí se nová úloha pro zálohování, jak je znázorněno níže:

Můžete také použít Percona Backup pro MongoDB pro konzistentní zálohování vašeho MongoDB Replicasetu a Sharded Cluster. Stačí vybrat percona-backup-mongodb jako metodu zálohování, vyžaduje to instalaci agenta na každý uzel a sdílené úložiště, které bude připojeno ke každému uzlu MongoDB.


  1. Dekódování Go JSON je velmi pomalé. Jaký by byl lepší způsob, jak to udělat?

  2. Objekt MongoDB serializovaný jako JSON

  3. Jak získat všechny klíče v Redis

  4. Redis - Použití hodnoty Incr v transakci