ブロック BLOB データに対してポイントインタイム リストアを実行する

ポイントインタイム リストアを使用して、ブロック BLOB の 1 つまたは複数のセットを以前の状態に復元することができます。 この記事では、ストレージ アカウントでポイントインタイム リストアを有効にする方法と、復元操作を実行する方法について説明します。

ポイントインタイム リストアの詳細については、「ブロック BLOB のポイントインタイム リストア」を参照してください。

注意

ポイントインタイム リストアは、標準パフォーマンス レベルでのみ、汎用 v2 ストレージ アカウントに対してサポートされています。 ポイントインタイム リストアでは、ホットおよびクール アクセス層のデータのみを復元できます。

注意

ポイントインタイム リストアでは、ブロック BLOB に対する復元操作のみがサポートされます。 コンテナーに対する操作は復元できません。 Delete Container 操作を呼び出してストレージ アカウントからコンテナーを削除した場合、そのコンテナーは復元操作を使って復元できません。 後で復元が必要になる可能性がある場合は、コンテナー全体を削除するのではなく、個々の BLOB を削除してください。 また、誤って削除されるのを防ぐために、コンテナーと BLOB の論理的な削除を有効にすることをお勧めします。 詳細については、「コンテナーの論理的な削除」と「BLOB の論理的な削除」を参照してください。

ポイントインタイム リストアを有効にして構成する

ポイントインタイム リストアを有効にして構成する前に、ストレージ アカウントに対してその前提条件 (論理的な削除、変更フィード、および BLOB のバージョン管理) を有効にします。 これらの各機能を有効にする方法の詳細については、次の記事を参照してください。

重要

論理的な削除、変更フィード、および BLOB のバージョン管理を有効にすると、追加料金が発生する可能性があります。 詳細については、「BLOB の論理的な削除」、「Azure Blob Storage の変更フィードのサポート」、および「BLOB のバージョン管理」を参照してください。

Azure portal を使用してポイントインタイム リストアを構成するには、次の手順に従います。

  1. Azure Portal のストレージ アカウントに移動します。
  2. [設定] で、 [データ保護] を選択します。
  3. [ポイントインタイム リストアを有効にする] をオンにします。 このオプションを選択すると、BLOB の論理的な削除、バージョン管理、および変更フィードも有効になります。
  4. ポイントインタイム リストアの最大復元ポイントを日単位で設定します。 この数は、BLOB の論理的な削除に指定された保有期間よりも 1 日以上短くする必要があります。
  5. 変更を保存します。

次の画像は、復元ポイントが 7 日前で、BLOB の論理的な削除の保有期間が 14 日間のポイントインタイム リストア用に構成されたストレージ アカウントを示しています。

Azure portal でポイントインタイム リストアを構成する方法を示すスクリーンショット

復元ポイントを選択する

復元ポイントは、データが復元される日時です。 Azure Storage では常に、UTC の日付または時刻値が復元ポイントとして使用されます。 ただし、Azure portal を使用すると、復元ポイントをローカル時刻で指定し、その日付または時刻値を UTC の日付または時刻値に変換して復元操作を実行できます。

PowerShell または Azure CLI で復元操作を実行する場合は、復元ポイントを UTC の日付または時刻値として指定する必要があります。 復元ポイントに UTC 時刻値ではなくローカル時刻値を指定したとしても、場合によっては復元操作が期待どおりに動作することがあります。 たとえば、UTC から 5 時間を引いた時刻がローカル時刻の場合、現地時刻の値を指定すると、指定した値より 5 時間早い復元ポイントが生成されます。 その 5 時間の間に復元対象の範囲内のデータに変更が加えられていない場合は、指定した時間値にかかわらず、復元操作で同じ結果が得られます。 予期しない結果を避けるために、復元ポイントには UTC 時刻を指定することをお勧めします。

復元操作を実行する

ストレージ アカウント内のすべてのコンテナーを復元することも、1 つまたは複数のコンテナー内の BLOB の範囲を復元することもできます。 BLOB の範囲は、辞書式 (つまり、辞書の順) で定義されます。 復元操作ごとに最大 10 個の辞書式範囲がサポートされます。 範囲の開始は含まれ、範囲の終了は含まれません。

開始範囲と終了範囲に指定するコンテナー パターンには、3 文字以上を含める必要があります。 コンテナー名と BLOB 名を区切るために使用されるスラッシュ (/) は、この最小数にはカウントされません。 復元の範囲を構成する方法の例をいくつか示します。

  • 復元の範囲に myContainer という名前のコンテナー全体を含めるには、開始範囲 myContainer と終了範囲 myContainer-0 を使用します。 これは、コンテナー名にサフィックスとして '-0' を追加して終了範囲の値を指定したとき、コンテナー内のすべてが復元対象に含まれる様子を示しています。
  • コンテナー myContainer 内にディレクトリ myFolder などの仮想ディレクトリ階層全体を含めるには、開始範囲 myContainer/myFolder/ と終了範囲 myContainer/myFolder0 を使用します。 仮想ディレクトリ名にサフィックスとして '0' を追加して終了範囲を指定すると、プレフィックス 'myContainer/myFolder/' を持つすべてのファイルが復元対象に含まれます。

ワイルドカード文字は、辞書式の範囲ではサポートされていません。 ワイルドカード文字はすべて、標準文字として扱われます。

復元操作に渡される範囲に明示的に指定することで、$root および $web コンテナー内の BLOB を復元できます。 $root および $web コンテナーは、明示的に指定されている場合にのみ復元されます。 他のシステム コンテナーは復元できません。

ブロック BLOB のみが復元されます。 ページ BLOB と追加 BLOB は復元操作に含まれません。 追加 BLOB に関する制限の詳細については、「ブロック BLOB のポイントインタイム リストア」を参照してください。

重要

復元操作を実行すると、Azure Storage では操作中、復元される範囲内の BLOB に対するデータ操作がブロックされます。 読み取り、書き込み、および削除の各操作がプライマリ ロケーションでブロックされます。 このため、Azure portal でのコンテナーの一覧表示などの操作は、復元操作の実行中に予期したとおりに実行されない場合があります。

ストレージ アカウントが geo レプリケートされている場合は、復元操作中にセカンダリ ロケーションからの読み取り操作を続行できます。

一連のデータの復元にかかる時間は、復元ジョブが取得されるまでの最大 1 時間後の復元期間中に行われた書き込み操作と削除操作の数に基づきます。 たとえば、100 万オブジェクトを持つアカウントで毎日 3,000 オブジェクトが追加され、毎日 1,000 オブジェクトが削除される場合、30 日前の時点まで復元するのに約 2 ~ 3 時間必要になります。 変更回数が少ない復元では、復元に最大 1 時間が必要になります。 1 保有期間と過去 90 日間の復元は、この変更率のアカウントには推奨されません。

アカウント内のすべてのコンテナーを復元する

ストレージ アカウント内のすべてのコンテナーを復元して、特定の時点でそれらを以前の状態に戻すことができます。

Azure portal を使用してストレージ アカウント内のすべてのコンテナーと BLOB を復元するには、これらの手順に従います。

  1. ストレージ アカウントのコンテナーの一覧に移動します。

  2. ツールバーで、 [コンテナーを復元する][すべてを復元する] の順に選択します。

  3. [すべてのコンテナーを復元する] ペインで、日付と時刻を指定して復元ポイントを設定します。

  4. チェックボックスをオンにして続行することを確認します。

  5. [復元] を選択して復元操作を開始します。

    指定された復元ポイントにすべてのコンテナーを復元する方法を示すスクリーンショット

ブロック BLOB の範囲を復元する

単一のコンテナー内または複数のコンテナー全体の BLOB の 1 つまたは複数の辞書式範囲を復元して、特定の時点でそれらの BLOB を以前の状態に戻すことができます。

Azure portal を使用して 1 つまたは複数のコンテナー内の BLOB の範囲を復元するには、これらの手順に従います。

  1. ストレージ アカウントのコンテナーの一覧に移動します。

  2. 復元するコンテナーを選択します。

  3. ツールバーで、 [コンテナーを復元する][選択範囲を復元する] の順に選択します。

  4. [選択したコンテナーを復元する] ペインで、日付と時刻を指定して復元ポイントを設定します。

  5. 復元する範囲を指定します。 コンテナー名と BLOB プレフィックスを区切るには、スラッシュ (/) を使用します。

  6. 既定では、 [選択したコンテナーを復元する] ペインにより、コンテナー内のすべての BLOB を含む範囲が指定されます。 コンテナー全体を復元しない場合は、この範囲を削除します。 次の画像に既定の範囲が示されています。

    カスタム範囲を指定する前に削除する既定の BLOB 範囲を示すスクリーンショット

  7. チェックボックスをオンにして続行することを確認します。

  8. [復元] を選択して復元操作を開始します。

次の画像は、一連の範囲に対する復元操作を示しています。

1 つまたは複数のコンテナー内の BLOB の範囲を復元する方法を示すスクリーンショット

画像に示されている復元操作では、次の操作を実行します。

  • container1 の完全な内容を復元します。
  • container2blob1 から blob5 までの辞書式範囲の BLOB を復元します。 この範囲の場合、blob1.txtblob11blob100blob2 などの名前を持つ BLOB が復元されます。 範囲の終了は含まれないため、名前が blob4 で始まる BLOB は復元されますが、名前が blob5 で始まる BLOB は復元されません。
  • container3container4 内のすべての BLOB を復元します。 範囲の最後は含まれないため、この範囲の場合、container5 は復元されません。

次の手順