sql >> データベース >  >> NoSQL >> MongoDB

OpenedXMongoDBデータベースをバックアップする方法

    Open edXは、MITとハーバードのチームによって開発されたオンライン学習用のオープンソースプロジェクトです。これは、学生向け、コース作成、コース配信、コンテンツ管理などの多くのコンポーネントを備えたWebベースのアプリケーションです。

    Open edXはPythonで構築されており、WebフレームワークとしてDjangoを使用します。 MongoDBをデータベースバックエンドとして使用します。 Open edX環境を構築およびセットアップする場合、プラットフォームは学生と学習者によってオープンプラットフォームとして広く使用されているため、サービスの稼働時間を考慮する必要があります。

    アプリケーションサーバーに加えて、MongoDBデータベースには高可用性が必須です。ディザスタリカバリでは、問題が発生した場合にデータを復元できるように、適切なバックアップ戦略が重要です。

    このブログでは、OpenedXMongoDBデータベースをバックアップする方法を確認します。

    バックアップストレージの準備

    最初に行う必要があるのは、MongoDBバックアップ用のストレージを準備することです。 Open edXサービスと同じインフラストラクチャでバックアップをステージングしてから、オフサイトでアーカイブできます。ストレージエリアネットワーク(SAN)またはネットワーク接続ストレージを使用して、MongoDBサーバーの1つにマウントできます。 AWSは、バックアップをアーカイブするためのS3と呼ばれるシンプルなストレージサービスを提供しますが、GoogleCloudPlatformにはクラウドストレージがあります。

    これはオンデマンドサービスであり、料金モデルはバックアップのGiBサイズごとに基づいています。安全のために、少なくともOpenedXデータベースのバックアップを2つの異なる領域に配置できます。これはあなたの前提であり、クラウド上にあります。

    MongoDBの手動バックアップ

    通常、MongoDBデータベースのバックアップでは、MongoDBサーバーのインストール時にバンドルされているmongodumpユーティリティを使用します。以下に示すように、MongoDBサーバーの1つでバックアップを取ることができ、mongodumpを実行するだけです。

    $ 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
    
    ……

    MongoDBホストにバックアップが作成され、バックアップファイルを他のストレージに移動するスクリプトを作成できます。

    ClusterControlを使用してOpenedX用にMongoDBをバックアップ

    ClusterControlは、OpenedXプラットフォームのMongoDBバックアップをサポートしています。これはmongodumpをサポートし、シャーディングされたMongoDBクラスターにより適したPBM(Percona Backup for MongoDB)と呼ばれる新しいバックアップ方法のサポートを追加しました。 ClusterControlでmongodumpを使用してバックアップを取るのは、GUIベースのウィザードを使用すると非常に簡単です。 [バックアップ]タブを選択してから、[バックアップの作成]を選択します。選択できるオプションは2つあり、すぐにバックアップを作成するか、バックアップをスケジュールすることができます。

    次に、[続行]をクリックします:

    バックアップ方法としてmongodumpを選択し、場所ディレクトリを書き留めます。バックアップを置きたい。このステップでは、MongoDBサーバーにマウントされているストレージエリアネットワークまたはネットワーク接続ストレージを使用できます。

    ClusterControlはクラウドへのバックアップもサポートしています。現在、Amazon Web Services(AWS)、Google Cloud Platform、MicrosoftAzureをサポートしています。

    バックアップの暗号化を有効にすることもできます。これは、次の場合に特に重要です。クラウドでアーカイブしています。次に、[バックアップの作成]を押すだけで、以下に示すように、バックアップの新しいジョブがトリガーされます。

    MongoDB用のPerconaバックアップを使用して、MongoDBレプリカセットの一貫したバックアップを行うこともできますおよびシャードクラスター..バックアップ方法としてpercona-backup-mongodbを選択するだけで、各ノードにエージェントをインストールし、すべてのMongoDBノードに共有ストレージをマウントする必要があります。


    1. テンプレートで使用するためにMongoDBからHTMLを取得する

    2. mongoは配列データをアップサートできますか?

    3. MongoDBで日付から秒を取得する5つの方法

    4. 新しいmongodbPECL拡張機能ではソートはどのように機能しますか?