最も人気のあるNoSQL(Not Only SQL)データベースであるMongoDBは、大量の非構造化データや次世代のクラウドネイティブおよびハイブリッドクラウド環境でのデプロイを扱うアプリケーションチームにとって、引き続き最適な選択肢となっています。MongoDBのような最新のNoSQLデータベースは、開発者が強力な顧客向けアプリケーションをこれまでにないスピードで本番環境に導入するのに役立ちます。
リレーショナルデータベースとは異なり、NoSQLデータベースは大量のデータを保存する際に、論理的なカテゴリやスキーマを必要としません。MongoDBは、情報をJavaScript Object Notation(JSON)形式で出力できるドキュメントに保存します。この形式の柔軟性により、ドキュメントごとに異なるフィールドをサポートするので、開発者はデータ構造を簡単に変更できます。SQLのような標準化されたクエリ言語を使用する代わりに、JavaScriptとシンプルなAPIを用いてMongoDBサーバーと対話することができます。
MongoDBの利点の1つは、ネイティブのレプリケーションが含まれていることです。ネイティブのレプリケーションは、ノード間でデータを複製することにより、メディアやネットワークの障害からデータを保護するのに適していますが、データの破損や損失が発生した場合、重大な欠点となる可能性があります。破損したデータセットが複製されることで、既存の問題がさらに悪化する恐れがあります。
ネイティブデータベースの複製はバックアップの代わりにはならず、テストや開発、データ移動の要件を満たすことにも役立ちません。NoSQLをベースにしたアプリケーションを導入している組織には、データベースのバックアップと複製の両方が必要です。
MongoDBにあるデータを適切に保護するためには、次の主要な要件を考慮する必要があります。
要件1:アプリケーション整合性が保たれたバックアップ。次世代のクラウドアプリケーションは、その性質上、常時稼働しています。アプリケーションがスケーリングに合わせて、基盤となるMongoDBも複数のシャードとレプリカセットでスケールアウトする必要があります。NoSQLデータベースのバックアップソリューションでは、バックアップ中にアプリケーションのパフォーマンスに影響を与えたり、データベースを停止させたりすることなく、シャードおよびレプリカセット全体で一貫性のあるバックアップコピーを提供する必要があります。
MongoDBのネイティブデータベースダンプオプションには、アプリケーション整合性が保たれたバックアップは提供されません。スケーリングを行わない場合、シャードクラスタやレプリカセットのバックアップに問題が生じ、人為的エラーが発生しやすくなります。データ損失からクリーンに復旧するには、シャードクラスタの一貫性のあるポイントインタイムバックアップが必要です。
要件2:きめ細かなバックアップ。MongoDBでは、さまざまな種類のドキュメントをコレクションにグループ化し、それぞれ別々の場所に保存することができます。コレクションは、リレーショナルデータベースにおけるテーブルに似ています。アプリケーションの要件によっては、1時間ごとにバックアップが必要なコレクションもあれば、毎日バックアップするコレクションもあります。コレクションレベルの粒度で任意の間隔でバックアップをスケジュールできる柔軟性は、MongoDBデータベースバックアップのもう一つの重要な要件です。
要件3:代替トポロジーへのオーケストレーションされた復旧。MongoDBクラスタのトポロジーは、データライフサイクルの各段階で異なります。たとえば、本番環境ではアプリケーションがオンプレミスのシャードMongoDBクラスタにデプロイされる一方で、テストチームはAmazon Web Services(AWS)クラウドの非シャードMongoDBクラスタにしかアクセスできない場合があります。したがって、データベースバックアップソリューションでは、シャード間やシャードから非シャードへの複数の復元操作を有効にする必要があります。同様に、地理的に分散したクラスタの復元操作がサポートされたバックアップソリューションが必要となります。
さらに、ネイティブのMongoDBバックアップツールでは、テストや開発用のクラスタに復元する機能が制限されています。テストや開発にデータを更新またはプッシュするためのデータ移動を提供するには、多くの場合、ソースクラスタとは異なるトポロジーを持つクラスタにデータを復元する必要があります。ネイティブのMongoDBバックアップツールでは、データを元のトポロジー(シャードやレプリカセット)に復元する必要があるため、より小さなテストや開発用のクラスタを作成することが困難になります。
要件4:ノード障害の処理。分散データベースでの障害発生は珍しいことではありません。したがって、データベースのバックアップには、バックアップおよび復元操作中のデータベースプロセスの障害、ノードの障害、ネットワークの障害、さらには論理的なデータの破損に対する回復力が求められます。バックアップソリューションは、シャードクラスタのメタデータを保存するMongoDB構成サーバーの障害にも対応できる必要があります。
Rubrik Mosaicは、最新のNoSQLデータベースとビッグデータファイルシステムにおけるバックアップおよび復旧の課題を解決するために特別に設計された専用ソフトウェアです。その主な利点は次のとおりです。
シャードデータベース構成と非シャードデータベース構成に対応した、アプリケーション整合性が保たれたバックアップ
時間単位で測定される目標復旧時点(RPO)要件を容易に満たす、より高速な増分バックアップ
クラスタ整合性が保たれたバージョニング、またはユーザーが指定した間隔でのMongoDBコレクションの時点バックアップコピー。
セマンティックな重複排除機能により、分散データベースのバックアップを保存するコストを大幅に削減し、最大70%のコスト削減を実現
完全にオーケストレーションされた、きめ細かなNoSQLデータベースの復旧
any-to-anyトポロジーのリストアによる本番データの更新
Rubrik MosaicとNoSQLデータベースのバックアップの詳細については、「MongoDB向けに構築されたデータ保護」をご覧ください。当社のホワイトペーパー「MongoDBでのバックアップと復旧に関するガイドの決定版」を読んで、深く掘り下げてみましょう。
MongoDBはRubrik Mosaicを使用してバックアップを取得し、ダウンタイム発生時には時間単位で測定されるRPOを基に、アプリケーション整合性が保たれたバックアップを作成します。
MongoDBには基本的なバックアップ機能が組み込まれていますが、Rubrik Mosaicはエンタープライズ環境向けにデータバックアップのための重要な機能を提供します。
MongoDBダンプ、mongodumpは、Mongoデータベースのバイナリエクスポートです。これは任意の単一時点のスナップショットを提供しますが、書き換え不可のバックアップやクラウドストレージは含まれません。