インスタンスを復元する

このページでは、バックアップからインスタンスを復元する方法について説明します。

復元オペレーションの詳細、ベスト プラクティス、要件については、インスタンスの復元の概要をご覧ください。

バックアップからインスタンスを復元する

バックアップを使用して、バックアップの取得元の同じインスタンスを復元するか、バックアップを使用して同じプロジェクト内の別のインスタンスを復元できます。

同じインスタンスに復元する

バックアップから同じインスタンスに復元すると、そのインスタンス上のデータが、バックアップを作成したときの状態に戻ります。インスタンスの復元については、復元の実行についての全般的なヒントをご覧ください。

Console

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. ターゲット インスタンスにリードレプリカがある場合は、右端にあるその他の操作メニュー その他アイコン を使用して、それらを削除します。
  3. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  4. SQL ナビゲーション メニューから [バックアップ] を選択します。
  5. 使用するバックアップを見つけて、[復元] を選択します。
  6. [バックアップからのインスタンスの復元] ダイアログ ボックスで、復元に使用するインスタンスの名前がインスタンスのプルダウン メニューで選択されていることを確認します。デフォルトのターゲット インスタンスは、バックアップの作成元と同じインスタンスです。
  7. [インスタンス名] フィールドにインスタンス名を入力し、選択内容を確認します。
  8. [復元] をクリックすると、復元プロセスが開始されます。
  9. インスタンスの [オペレーション] ページに移動すると、復元オペレーションのステータスを確認できます。
  10. 復元オペレーションが完了したら、最初の手順で削除したレプリカを再作成します。

gcloud

  1. インスタンスにレプリカがあるかどうかを示します。
    gcloud sql instances describe INSTANCE_NAME

    replicaNames 以下にリストされているすべてのインスタンスをメモします。

  2. すべてのレプリカを削除します。
    gcloud sql instances delete REPLICA_NAME

    すべてのレプリカについて繰り返します。

  3. インスタンスのバックアップをリストします。
    gcloud sql backups list --instance INSTANCE_NAME
  4. 使用するバックアップを見つけ、その ID 値を記録します。
  5. 指定したバックアップからインスタンスを復元します。
    gcloud sql backups restore BACKUP_ID \
    --restore-instance=INSTANCE_NAME
  6. 復元オペレーションが完了したら、最初の手順で削除したレプリカを再作成します。

REST v1

  1. インスタンスのバックアップを一覧表示し、使用するバックアップの ID を取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  2. バックアップからインスタンスを復元します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID
    • backup-id バックアップ ID

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/restoreBackup

    JSON 本文のリクエスト:

    {
      "restoreBackupContext":
      {
        "backupRunId": "backup-id",
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  3. 復元オペレーションが完了したら、前に削除したレプリカを再作成します。

REST v1beta4

  1. インスタンスのバックアップを一覧表示し、使用するバックアップの ID を取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  2. バックアップからインスタンスを復元します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID
    • backup-id バックアップ ID

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/restoreBackup

    JSON 本文のリクエスト:

    {
      "restoreBackupContext":
      {
        "backupRunId": "backup-id",
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  3. 復元オペレーションが完了したら、前に削除したレプリカを再作成します。

別のインスタンスに復元する

バックアップから別のインスタンスに復元すると、ターゲット インスタンス上のデータが、バックアップを作成したときのソース インスタンスの状態に更新されます。詳細については、復元の実行についての全般的なヒント別のインスタンスへの復元のヒントと要件をご覧ください。

プロジェクトのバックアップのリストが必要だが、停止が原因でインスタンスの概要ページに表示できない場合は、backupRuns.list API でワイルドカード(-)を使用できます。ワイルドカード オプションでプロジェクト内のすべてのインスタンスのバックアップのリストを取得します。詳細については、停止時にバックアップを表示するをご覧ください。

Console

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. ターゲット インスタンスにリードレプリカがある場合は、右端にあるその他の操作メニュー その他アイコン を使用して、それらを削除します。
  3. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  4. SQL ナビゲーション メニューから [バックアップ] を選択します。
  5. 復元するバックアップを見つけて、[復元] を選択します。
  6. [バックアップからのインスタンスの復元] ダイアログの [インスタンス] プルダウン メニューから、復元したいインスタンスを選択します。
  7. [バックアップからのインスタンスの復元] ダイアログ ボックスで、[インスタンス] プルダウン メニューから復元に使用するインスタンスを選択します。デフォルトのターゲット インスタンスは、バックアップの作成元と同じインスタンスです。
  8. [インスタンス名] フィールドにインスタンス名を入力し、選択内容を確認します。
  9. [復元] をクリックすると、復元プロセスが開始されます。
  10. ターゲット インスタンスの [オペレーション] タブに移動すると、復元のステータスを確認できます。
  11. 復元オペレーションが完了したら、前に削除したレプリカを再作成します。

gcloud

  1. ターゲット インスタンスについて記述し、レプリカがあるかどうかを確認します。
    gcloud sql instances describe TARGET_INSTANCE_NAME

    replicaNames 以下にリストされているすべてのインスタンスをメモします。

  2. すべてのレプリカを削除します。
    gcloud sql instances delete REPLICA_NAME

    レプリカごとに繰り返します。

  3. インスタンスのバックアップのリストを取得します。
    gcloud sql backups list \
    --instance SOURCE_INSTANCE_NAME
  4. 使用するバックアップを見つけ、その ID 値を記録します。
  5. ターゲット インスタンスの指定されたバックアップから復元します。
    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME \
    --backup-instance=SOURCE_INSTANCE_NAME
        
  6. 復元が完了したら、前に削除したレプリカを再作成します。

REST v1

  1. ターゲット インスタンスのすべてのレプリカを一覧表示します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=replicaNames

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  2. すべてのレプリカを削除します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • replica-id: レプリカ ID

    HTTP メソッドと URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-id

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    レプリカごとに繰り返します。

  3. ソース インスタンスのバックアップの一覧を表示し、使用するバックアップの ID を取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    または、インスタンスが停止しているリージョンにある場合は、プロジェクト内のすべてのバックアップを一覧表示します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID。プロジェクト内のすべてのバックアップのリストの場合は -

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/-/backupRuns

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    復元が必要なインスタンスのバックアップを見つけます。
  4. バックアップからターゲット インスタンスを復元します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • target-instance-id: ターゲット インスタンス ID
    • source-instance-id: ソース インスタンス ID
    • backup-id バックアップ ID

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/target-instance-id/restoreBackup

    JSON 本文のリクエスト:

    {
      "restoreBackupContext":
      {
        "backupRunId": backup-id,
        "instanceId": "source-instance-id"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  5. 復元オペレーションが完了したら、前に削除したレプリカを再作成します。

REST v1beta4

  1. ターゲット インスタンスのすべてのレプリカを一覧表示します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=replicaNames

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  2. すべてのレプリカを削除します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • replica-id: レプリカ ID

    HTTP メソッドと URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-id

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    レプリカごとに繰り返します。

  3. ソース インスタンスのバックアップの一覧を表示し、使用するバックアップの ID を取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • instance-id: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  4. バックアップからターゲット インスタンスを復元します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • project-id: プロジェクト ID
    • target-instance-id: ターゲット インスタンス ID
    • source-instance-id: ソース インスタンス ID
    • backup-id バックアップ ID

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/target-instance-id/restoreBackup

    JSON 本文のリクエスト:

    {
      "restoreBackupContext":
      {
        "backupRunId": backup-id,
        "instanceId": "source-instance-id"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

  5. 復元オペレーションが完了したら、前に削除したレプリカを再作成します。

別のプロジェクトのインスタンスに復元する

project パラメータを使用して、バックアップが実行されたプロジェクトとは別のプロジェクトのインスタンスにデータを復元できます。project パラメータを使用するときに、データを復元するプロジェクトのインスタンスで restoreBackup を呼び出します。バックアップから別のインスタンスに復元すると、ターゲット インスタンス上のデータが、バックアップを作成したときのソース インスタンスの状態に更新されます。

権限

別のプロジェクトに復元するユーザーは、ターゲット プロジェクトに対する cloudsql.instances.restoreBackup 権限と、ソース インスタンスに対する cloudsql.backupRuns.get 権限を持っている必要があります。これらの権限は、Cloud SQL Admin ロールに含まれています。

別のプロジェクトのインスタンスにデータを復元するには:

REST v1

backupId を取得するには、以下を実行します。

リクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

バックアップを別のプロジェクトのインスタンスに復元します。

リクエストのデータを使用する前に、次のように置き換えます。

  • source-project-id: ソース プロジェクト ID
  • target-project-id: ターゲット プロジェクト ID
  • target-instance-id: ターゲット インスタンス ID
  • source-instance-id: ソース インスタンス ID
  • backup-id バックアップ ID

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/v1/projects/target-project-id/instances/target-instance-id/restoreBackup

JSON 本文のリクエスト:

{
  "restoreBackupContext":
  {
    "backupRunId": backup-id,
    "project": "source-project-id",
    "instanceId": "source-instance-id"
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

project プロパティの詳細については、restoreBackup をご覧ください。

REST v1beta4

backupId を取得するには、以下を実行します。

リクエストのデータを使用する前に、次のように置き換えます。

  • project-id: プロジェクト ID
  • instance-id: インスタンス ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

バックアップを別のプロジェクトのインスタンスに復元します。

リクエストのデータを使用する前に、次のように置き換えます。

  • source-project-id: ソース プロジェクト ID
  • target-project-id: ターゲット プロジェクト ID
  • target-instance-id: ターゲット インスタンス ID
  • source-instance-id: ソース インスタンス ID
  • backup-id バックアップ ID

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id/instances/target-instance-id/restoreBackup

JSON 本文のリクエスト:

{
  "restoreBackupContext":
  {
    "backupRunId": backup-id,
    "project": "source-project-id",
    "instanceId": "source-instance-id"
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

project プロパティの詳細については、restoreBackup をご覧ください

ポイントインタイム リカバリを実行する

ポイントインタイム リカバリを実行するには、ポイントインタイム リカバリをご覧ください。

次のステップ