インプレース復元を行う

このページでは、バックアップ内のデータを、バックアップのソース データベースと同じ名前のデータベースに復元する方法について説明します。 このページを読む前に、データのバックアップと復元について理解しておく必要があります。

インプレース復元

インプレース復元では、元のデータベースがまだ存在している間に、バックアップからバックアップを作成したソース データベースにデータベースを復元できます。インプレース復元を行うと、トラフィックの再ルーティングや、別の名前のデータベースの作成を回避できます。

復元オペレーションでは、まだ存在しない宛先データベースを使用する必要があります。ただし、インプレース復元をシミュレートするには、ソース データベースを削除してから、ソース データベースと同じ名前の新しいデータベースにバックアップから復元します。

インプレース復元を行う

インプレース復元を行う手順は以下のとおりです。

  1. 復元オペレーションに使用するバックアップを特定します。
  2. 既存のデータベースを削除します。
  3. 削除されたデータベースのバックアップとデータベース ID を使用して、復元オペレーションを完了します。

始める前に

インプレース復元プロセスを開始する前に、次の手順を行うことをおすすめします。

  1. ���除��るデータベースのデータをエクスポートします。

    削除したデータベースを復元する必要がある場合は、エクスポート オペレーションからデータをインポートします。 削除したデータベースを同じデータベース ID に復元するには、実行中の復元オペレーションがすべて完了するのを待ってから、次の操作を行います。

    1. データベース ID を持つ既存のデータベースを削除し、5 分以上待ちます。
    2. データベース ID を持つ新しいデータベースを作成する
    3. インポート オペレーションを開始する
  2. データベースのインデックス構成を取得してコピーします。エクスポート オペレーションではインデックス定義をキャプチャしません。インプレース復元オペレーションの完了後に、インデックス構成を使用してインデックスを再作成します。次のコマンドを使用して、データベースのインデックス構成を取得します。

    • gcloud firestore indexes composite list を使用して、複合インデックスのリストを取得します。

      gcloud firestore indexes composite list --database=DATABASE_ID
      

      DATABASE_ID は、データベースの ID に置き換えます。

    • gcloud firestore indexes fields list を使用して、単一フィールド(組み込み)インデックス除外のリストを取得します。

      gcloud firestore indexes fields list --database=DATABASE_ID
      

インプレース復元を行う

インプレース復元オペレーションを実行するには、次の手順を行います。このプロセスでは、データベースを削除する瞬間から復元オペレーションが完了するまでの間に、ダウンタイムが必要となります。

復元オペレーションの開始後は、そのオペレーションをキャンセルできず、オペレーションが完了するまで待つ必要があります。復元オペレーションは、オペレーションで使用されるデータベース ID を直ちに占有します。

  1. gcloud alpha firestore backups list コマンドを使用して、復元オペレーションに使用するバックアップを特定します。リソース名をメモしてください。リソース名には次の形式を使用します。

        projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
    
  2. gcloud firestore databases delete コマンドを使用して、既存のデータベースを削除します。

        gcloud firestore databases delete --database='DATABASE_ID'
    

    DATABASE_ID をデータベース ID に置き換えます。

  3. データベースを削除してから、データベース ID が再び使用可能になるまで、少なくとも 5 分間待ちます。gcloud alpha firestore databases restore コマンドを使用して、復元オペレーションを開始します。

    gcloud alpha firestore databases restore \
    --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
    --destination-database='DATABASE_ID'
    

    DATABASE_ID をデータベース ID に置き換えます。

次のステップ