Azure Cosmos DB バックアップからのデータ復元を要求する
適用対象: NoSQL MongoDB Cassandra Gremlin Table
データベースまたはコンテナーを誤って削除した場合は、サポート チケットを申請するか、Azure サポートに連絡して、自動オンライン バックアップからデータを復元できます。 Azure サポートは、Standard、Developer、またはそれよりもレベルの高度なプランなどの特定のプランでのみ利用できます。 Azure サポートは、Basic プランでは利用できません。 さまざまなサポート プランについては、「Azure のサポート プラン」ページを参照してください。
バックアップの特定のスナップショットを復元するには、Azure Cosmos DB では、該当のスナップショットのバックアップ サイクル期間中にデータが利用可能であることが求められます。 復元を要請する前に、次の詳細を確認する必要があります。
- サブスクリプション ID を準備ししておきます。
- データが誤って削除または変更された際の方法に基づいて、詳細情報を準備しておく必要があります。 情報を探す時間を最小限に抑えるために、事前に情報を入手しておくことをお勧めします。時間に制約がある一部のケースでは、探す時間が悪影響になる場合があります。
- Azure Cosmos DB アカウント全体が削除された場合は、削除されたアカウントの名前を提示する必要があります。 削除されたアカウントと同じ名前の別のアカウントを作成する場合は、選択する適切なアカウントを判断できるように、サポート チームに報告してください。 削除されたアカウントごとに別のサポート チケットを申請することをお勧めします。そうすることで、復元の状態についての混乱を最小限に抑えられます。
- 1 つ以上のデータベースが削除された場合は、Azure Cosmos DB アカウントと Azure Cosmos DB データベース名を入力し、同じ名前の新しいデータベースが存在するかどうかを指定する必要があります。
- 1 つ以上のコンテナーが削除された場合は、Azure Cosmos DB アカウント名、データベース名、およびコンテナー名を提示する必要があります。 そうすることで、同じ名前のコンテナーが存在するかどうかを明確にします。
- 誤ってデータを削除した場合またはデータが破損した場合は、Azure Cosmos DB チームがバックアップからのデータの復元をサポートできるように、8 時間以内に Azure サポートに連絡してください。 データを復元するためのサポート リクエストを作成する前に、アカウントのバックアップ保有期間を 7 日以上に増やしてください。 このイベントの 8 時間以内に保有期間を延長することをお勧めします。 この方法で、Azure Cosmos DB サポート チームがアカウントを復元するのに十分な時間が確保されます。
Azure Cosmos DB アカウント名、データベース名、コンテナー名に加えて、データの復元に使用する特定の時点を指定する必要があります。 その時点で利用可能な最善のバックアップを特定できるように、できるだけ厳密に示すことが重要です。 また、UTC で時間を指定することも重要です。 ネットワーク アクセスなしでアカウントを復元する場合は、チケットにその旨を記載してください。
次のスクリーンショットは、Azure portal を使ってデータを復元するコンテナー (コレクション/グラフ/テーブル) に関するサポート リクエストを作成する方法を示しています。 要請の優先度付けに役立つように、データの種類、復元の目的、データが削除された時刻などのその他の詳細を提示します。
バックアップからのデータ復元に関する考慮事項
データを誤って削除または変更する可能性のあるシナリオには、次のようなものがあります。
Azure Cosmos DB アカウント全体を削除する。
1 つ以上の Azure Cosmos DB データベースを削除する。
1 つ以上の Azure Cosmos DB コンテナーを削除する。
コンテナー内の Azure Cosmos DB 項目 (たとえばドキュメント) を削除または変更する。 この特定のケースは一般にデータの破損と呼ばれます。
共有オファー データベース、または共有オファー データベース内のコンテナーが、削除されるか破損する。
Azure Cosmos DB では、上記のすべてのシナリオにおいてデータを復元できます。 バックアップからの復元時には、復元されたデータを保持するために新しい Azure Cosmos DB アカウントが作成されます。 新しいアカウントの名前が指定されていない場合、名前は <Azure_Cosmos_account_original_name>-restored1
の形式になります。 復元が複数回試行されると、最後の桁がインクリメントされます。 事前に作成した Azure Cosmos DB アカウントにデータを復元することはできません。
Azure Cosmos DB アカウントを誤って削除した場合は、そのアカウント名が使用されていなければ、同じ名前の新しいアカウントにデータを復元できます。 そのため、削除した後でアカウントを再作成しないことをお勧めします。 復元されたデータに同じ名前が使用されなくなるだけでなく、復元の基になる適切なアカウントを検出することが難しくなるからです。
Azure Cosmos DB データベースを誤って削除したときは、データベース全体またはそのデータベース内のコンテナーのサブセットを復元することができます。 また、データベース全体で特定のコンテナーを選択し、それらを新しい Azure Cosmos DB アカウントに復元することもできます。
コンテナー内の 1 つ以上の項目を誤って削除または変更した場合 (データの破損のケース)、どの時点まで復元するかを指定する必要があります。 データが破損している場合は、時間が重要です。 コンテナーはライブ状態であるため、バックアップはまだ実行中です。したがって、保有期間 (既定では 8 時間) より長く待つと、バックアップが上書きされます。 バックアップが上書きされないようにするには、アカウントのバックアップ保有を少なくとも 7 日間に増やします。 データの破損から 8 時間以内に、データの保有を延長することをお勧めします。
誤ってデータを削除した場合またはデータが破損した場合は、Azure Cosmos DB チームがバックアップからのデータの復元をサポートできるように、8 時間以内に Azure サポートに連絡してください。 この方法で、Azure Cosmos DB サポート チームがアカウントを復元するのに十分な時間が確保されます。
Note
データの復元後、ソースの機能または設定の一部は回復後のアカウントに継承されません。 次の設定は、新しいアカウントに引き継がれません。
- VNET アクセス制御リスト
- ストアド プロシージャ、トリガー、ユーザー定義関数
- マルチリージョン設定
- マネージド ID の設定
データベース レベルでスループットを割り当てている場合、このケースでのバックアップと復元のプロセスは、個々のコンテナー レベルではなく、データベース全体のレベルで行われます。 そのような場合、復元するコンテナーのサブセットを選択することはできません。
復元されたアカウントから復元の詳細を取得する
復元操作が完了したら、復元元のソース アカウントの詳細や復元時刻を確認する必要があります。 これらの詳細は、Azure portal、PowerShell、または CLI から取得できます。
Azure portal から復元の詳細を取得するには、次の手順に従います。
Azure portal にサインインし、復元されたアカウントに移動します。
[タグ] ページを開きます。
[タグ] ページには、restoredAtTimestamp と restoredSourceDatabaseAccountName というタグがあるはずです。 これらのタグは、定期的な復元に使用されたタイムスタンプとソース アカウント名を示します。
復元後の操作
データ復元の主な目的は、誤って削除または変更したデータを復旧することです。 そのため、最初に、復旧したデータの内容を検査して、必要なデータが含まれているか確認することをお勧めします。 すべて問題ないようであれば、データをプライマリ アカウントに移行し直すことができます。 復元したアカウントを新しいアクティブなアカウントとして使用することはできますが、運用ワークロードが存在する場合のオプションとしてはお勧めしません。
データを復元した後は、新しいアカウント名 (通常は <original-name>-restored1
形式) とアカウントが復元された時刻に関する通知を受け取ります。 復元されたアカウントは、同じプロビジョニング済みのスループットとインデックス作成ポリシーを保持し、元のアカウントと同じリージョン内にあります。 サブスクリプションの管理者または共同管理者になっているユーザーには、復元されたアカウントが表示されます。
元のアカウントにデータを移行する
以下に、データを元のアカウントに移行し直すさまざまな方法を示します。
- Azure Data Factory を使用します。
- Azure Cosmos DB の変更フィードを使用します。
- 独自のカスタム コードを作成できます。
データの移行後は、コンテナーやデータベースをすぐに削除することをお勧めします。 復元されたデータベースまたはコンテナーを削除しなかった場合は、要求ユニット、ストレージ、およびエグレスに対するコストが発生します。
次のステップ
- 定期的なバックアップと復元の詳細を確認する
- 継続的バックアップの詳細について学ぶ