インスタンスを復元する

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

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

オンデマンド バックアップまたは自動バックアップから復元する

オンデマンド バックアップまたは自動バックアップは、次のような場合に使用できます。

  • 同じプロジェクト内の別のインスタンスに復元する
  • バックアップを取得した同じインスタンスに復元する
  • 別のプロジェクトまたはリージョンの別のインスタンスに復元する

ポイントインタイム リカバリ(PITR)が有効になっている場合は、インスタンスのログ保持設定に基づいて、インスタンスを特定の時点に復元できます。

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

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

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

Console

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

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

  2. ターゲット インスタンスにリードレプリカがある場合は、その他の操作メニュー その他アイコン を使用して削除します。
  3. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  4. SQL ナビゲーション メニューから [バックアップ] を選択します。
  5. 復元するバックアップを見つけて、[復元] をクリックします。
  6. [バックアップからのインスタンスの復元] ページの [バックアップの詳細を確認] で、正しいバックアップを選択していることを確認します。
  7. [復元先の選択] で、[既存のインスタンスを上書きする] を選択します。
  8. [上書きするインスタンス] メニューから、復元に使用するインスタンスを選択します。選択したインスタンスとそのすべてのデータが上書きされます。
  9. 選択を確定するには、上書きするインスタンスの名前を [移行先インスタンス ID] フィールドに入力します。
  10. 復元プロセスを開始するには、[復元] をクリックします。
  11. 復元オペレーションのステータスを確認するには、インスタンスの [オペレーション] ページに移動します。
  12. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

gcloud

  1. ターゲット インスタンスにリードレプリカがあるかどうかを確認するには、gcloud sql instances describe コマンドを使用します。
    gcloud sql instances describe TARGET_INSTANCE_NAME

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

  2. すべてのレプリカを削除するには、gcloud sql instances delete コマンドを使用します。
    gcloud sql instances delete REPLICA_NAME

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

  3. ソース インスタンスのバックアップを一覧表示するには、gcloud sql backups list コマンドを使用します。
    gcloud sql backups list \
    --instance SOURCE_INSTANCE_NAME
  4. 使用するバックアップを見つけ、その ID 値を記録します。
  5. バックアップからターゲット インスタンスを復元するには、gcloud sql backups restore コマンドを使用します。
    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME \
    --backup-instance=SOURCE_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?fields=replicaNames

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames" | Select-Object -Expand Content

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

    {
      "replicaNames": [
        "REPLICA_NAME"
      ]
    }
    
  2. すべてのレプリカを削除します。

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

    • PROJECT_ID: プロジェクト ID
    • REPLICA_ID: レプリカ ID

    HTTP メソッドと URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID

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

    次のコマンドを実行します。

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "DELETE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "REPLICA_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

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

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

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

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

    HTTP メソッドと URL:

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

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns" | Select-Object -Expand Content

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

    {
          "kind": "sql#backupRun",
          "status": "SUCCESSFUL",
          "enqueuedTime": "2020-01-21T11:25:33.818Z",
          "id": "backup-id",
          "startTime": "2020-01-21T11:25:33.858Z",
          "endTime": "2020-01-21T11:26:18.663Z",
          "type": "AUTOMATED",
          "windowStartTime": "2020-01-21T10:00:00.479Z",
          "instance": "instance-id",
          "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id",
          "location": "us"
        }
    
    

    または

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

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

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

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/-/backupRuns

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/-/backupRuns"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/-/backupRuns" | Select-Object -Expand Content

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

    {
          "kind": "sql#backupRun",
          "status": "SUCCESSFUL",
          "enqueuedTime": "2020-01-21T11:25:33.818Z",
          "id": "BACKUP_ID",
          "startTime": "2020-01-21T11:25:33.858Z",
          "endTime": "2020-01-21T11:26:18.663Z",
          "type": "AUTOMATED",
          "windowStartTime": "2020-01-21T10:00:00.479Z",
          "instance": "INSTANCE_ID",
          "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_ID",
          "location": "us"
          "backupKind": "SNAPSHOT"
        }
    
    
    復元が必要なインスタンスのバックアップを見つけます。
  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"
      }
    }
    

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

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/project-id/instances/target-instance-id/restoreBackup"

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/target-instance-id/restoreBackup" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "RESTORE_BACKUP",
      "name": "operation-id",
      "targetId": "instance-id",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
      "targetProject": "project-id"
    }
    
  5. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

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?fields=replicaNames

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames" | Select-Object -Expand Content

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

    {
      "replicaNames": [
        "REPLICA_NAME"
      ]
    }
    
  2. すべてのレプリカを削除します。

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

    • PROJECT_ID: プロジェクト ID
    • REPLICA_ID: レプリカ ID

    HTTP メソッドと URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID

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

    次のコマンドを実行します。

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "DELETE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "REPLICA_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

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

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

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

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

    HTTP メソッドと URL:

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

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns" | Select-Object -Expand Content

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

    {
          "kind": "sql#backupRun",
          "status": "SUCCESSFUL",
          "enqueuedTime": "2020-01-21T11:25:33.818Z",
          "id": "backup-id",
          "startTime": "2020-01-21T11:25:33.858Z",
          "endTime": "2020-01-21T11:26:18.663Z",
          "type": "AUTOMATED",
          "windowStartTime": "2020-01-21T10:00:00.479Z",
          "instance": "instance-id",
          "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns/backup-id",
          "location": "us"
        }
    
    
  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"
      }
    }
    

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

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/target-instance-id/restoreBackup"

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/target-instance-id/restoreBackup" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "RESTORE_BACKUP",
      "name": "operation-id",
      "targetId": "instance-id",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
      "targetProject": "project-id"
    }
    
  5. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

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

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

Console

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

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

  2. ターゲット インスタンスにリードレプリカがある場合は、その他の操作メニュー その他アイコン を使用して削除します。
  3. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  4. SQL ナビゲーション メニューから [バックアップ] を選択します。
  5. 使用するバックアップを見つけて、[復元] をクリックします。
  6. [バックアップからのインスタンスの復元] ページの [バックアップの詳細を確認] で、正しいバックアップを選択していることを確認します。
  7. [復元先の選択] で、[ソース インスタンスを上書きする] を選択します。

    移行元インスタンスの名前が括弧で囲まれて指定されていることを確認します。

  8. 選択を確定するには、[移行先インスタンス ID] フィールドにインスタンス名を入力します。
  9. 復元プロセスを開始するには、[復元] をクリックします。
  10. 復元オペレーションのステータスを確認するには、インスタンスの [オペレーション] ページに移動します。
  11. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

gcloud

  1. インスタンスにリードレプリカがあるかどうかを確認するには、gcloud sql instances describe コマンドを使用します。
    gcloud sql instances describe INSTANCE_NAME

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

  2. すべてのレプリカを削除するには、gcloud sql instances delete コマンドを使用します。
    gcloud sql instances delete REPLICA_NAME

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

  3. インスタンスのバックアップを一覧表示するには、gcloud sql backups list コマンドを使用します。
    gcloud sql backups list --instance INSTANCE_NAME
  4. 使用するバックアップを見つけ、その ID 値を記録します。
  5. 指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。
    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

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns" | Select-Object -Expand Content

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

    {
          "kind": "sql#backupRun",
          "status": "SUCCESSFUL",
          "enqueuedTime": "2020-01-21T11:25:33.818Z",
          "id": "backup-id",
          "startTime": "2020-01-21T11:25:33.858Z",
          "endTime": "2020-01-21T11:26:18.663Z",
          "type": "AUTOMATED",
          "windowStartTime": "2020-01-21T10:00:00.479Z",
          "instance": "instance-id",
          "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id",
          "location": "us"
        }
    
    
  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",
      }
    }
    

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

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/restoreBackup"

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "RESTORE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    
  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

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns" | Select-Object -Expand Content

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

    {
          "kind": "sql#backupRun",
          "status": "SUCCESSFUL",
          "enqueuedTime": "2020-01-21T11:25:33.818Z",
          "id": "backup-id",
          "startTime": "2020-01-21T11:25:33.858Z",
          "endTime": "2020-01-21T11:26:18.663Z",
          "type": "AUTOMATED",
          "windowStartTime": "2020-01-21T10:00:00.479Z",
          "instance": "instance-id",
          "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns/backup-id",
          "location": "us"
        }
    
    
  2. 指定したバックアップからインスタンスを復元します。

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

    • PROJECT_ID: プロジェクト ID
    • INSTANCE_ID: インスタンス ID
    • BACKUP_RUN_ID: Cloud SQL がバックアップからインスタンスを復元した日時スタンプ

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/restoreBackup

    リクエストの本文(JSON):

    {
      "restoreBackupContext":
      {
        "backupRunId": "BACKUP_RUN_ID",
      }
    }
    

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

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/restoreBackup"

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "RESTORE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "TARGET_INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    
  3. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

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

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

権限

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

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

gcloud

  1. インスタンスのバックアップを一覧表示します。

    gcloud sql backups list --instance INSTANCE_NAME

    INSTANCE_NAME は、インスタンス名で置き換えます。

  2. 使用するバックアップを見つけ、その ID 値を記録します。
  3. 別のプロジェクトのインスタンスにデータを復元します。

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME \
    --backup-instance=SOURCE_INSTANCE_NAME \
    --backup-project=SOURCE_INSTANCE_PROJECT

    次のように置き換えます。

    • BACKUP_ID: バックアップの ID。この ID は、この手順の前に取得しました。
    • TARGET_INSTANCE_NAME: データを復元する宛先プロジェクト内のインスタンス。
    • SOURCE_INSTANCE_NAME: 宛先プロジェクトのインスタンスに復元するデータを含む、ソース プロジェクト内のインスタンス。
    • SOURCE_INSTANCE_PROJECT: ソース インスタンスを含むプロジェクト。

REST v1

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

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

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

HTTP メソッドと URL:

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

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

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns"

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns" | Select-Object -Expand Content

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

{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "backup-id",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "instance-id",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id",
      "location": "us"
    }

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

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

  • 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"
  }
}

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

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/target-project-id/instances/target-instance-id/restoreBackup"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/target-project-id/instances/target-instance-id/restoreBackup" | Select-Object -Expand Content

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id/instances/target-instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_VOLUME",
  "name": "operation-id",
  "targetId": "target-instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id/operations/operation-id",
  "targetProject": "target-project-id"
}
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

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

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns"

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns" | Select-Object -Expand Content

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

{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "backup-id",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "instance-id",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns/backup-id",
      "location": "us"
    }

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

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

  • 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"
  }
}

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

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id/instances/target-instance-id/restoreBackup"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id/instances/target-instance-id/restoreBackup" | Select-Object -Expand Content

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id/instances/target-instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_VOLUME",
  "name": "operation-id",
  "targetId": "target-instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id/operations/operation-id",
  "targetProject": "target-project-id"
}
project プロパティについて詳しくは、restoreBackup をご覧ください。

最終バックアップから復元する

最終バックアップは、次のような場合に使用できます。

  • 最終バックアップを新しいインスタンスに復元する
  • 別のプロジェクトまたはリージョンの新しいインスタンスに復元する

削除されたインスタンスの最終バックアップを使用してインスタンスを復元するため、このバックアップを使用して、削除されたインスタンスの構成を持つインスタンスを作成し、データを復元することもできます。

新しいインスタンスに復元する

最終バックアップからインスタンスを作成すると、Cloud SQL は最終バックアップが取得されたインスタンスの構成設定を使用します。インスタンスの作成後、Cloud SQL は最終バックアップを取得した時点の状態にデータを復元します。

Console

  1. Google Cloud コンソールで、[Cloud SQL のバックアップ] ページに移動します。

    [Cloud SQL バックアップ] に移動

    このページには、Google Cloud プロジェクトに関連付けられているすべてのバックアップ(最終バックアップを含む)が一覧表示されます。

  2. 新しいインスタンスに復元するデータを含む最終バックアップをクリックします。
  3. [最終バックアップ] ダイアログで、[復元] をクリックします。
  4. [バックアップからのインスタンスの復元] ページの [バックアップの詳細を確認] で、正しいバックアップを選択していることを確認します。
  5. [復元先の選択] で、[新しいインスタンスに復元する] を選択します。
  6. [リージョン] メニューから、新しいインスタンスのリージョンを選択します。
  7. [インスタンス ID] フィールドに、新しいインスタンスの ID を入力します。
  8. 復元プロセスを開始するには、[復元] をクリックします。
  9. 復元オペレーションのステータスを確認するには、インスタンスの [オペレーション] ページに移動します。

gcloud

  1. ソース インスタンスの最終バックアップを一覧表示するには、gcloud sql backups list コマンドを使用します。
    gcloud sql backups list \
    --filter='type:FINAL instance: SOURCE_INSTANCE_NAME'
  2. 使用するバックアップを見つけ、その NAME 値を記録します。
  3. 指定した最終バックアップから新しいインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。
    gcloud sql backups restore BACKUP_NAME \
    --restore-instance=TARGET_INSTANCE_NAME 

REST v1

  1. 使用するバックアップの ID を取得するには、ソース インスタンスの最終的なバックアップを一覧表示します。

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

    • PROJECT_ID: プロジェクト ID
    • INSTANCE_ID: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'" | Select-Object -Expand Content

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

    {
          "name": "projects/PROJECT_ID/backups/BACKUP_ID",
          "kind": "sql#backup",
          "state": "SUCCESSFUL",
          "backupInterval": {
                "startTime": "2020-01-21T11:25:33.858Z",
                "endTime": "2020-01-21T11:26:18.663Z",
           }
          "type": "FINAL",
          "instance": "INSTANCE_ID",
          "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",
          "location": "us"
          "description": "This is a final backup.",
          "backupKind": "SNAPSHOT",
          "dataDiskSizeGB": "10",
          "expiryTime": "2020-01-30T11:26:18.663Z",
          "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",
          "satisfies_pzs": false,
          "satisfies_pzi": false
    }
    
  2. 指定した最終バックアップから新しいインスタンスを復元します。

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

    • PROJECT_ID: プロジェクト ID
    • TARGET_INSTANCE_ID: ターゲット インスタンス ID
    • BACKUP_ID: バックアップ ID

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

    リクエストの本文(JSON):

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
      restore_instance_settings: {}
    }
    

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

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup"

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "RESTORE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "TARGET_INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

REST v1beta4

  1. 使用するバックアップの ID を取得するには、ソース インスタンスの最終的なバックアップを一覧表示します。

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

    • PROJECT_ID: プロジェクト ID
    • INSTANCE_ID: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'" | Select-Object -Expand Content

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

    {
          "name": "projects/PROJECT_ID/backups/BACKUP_ID",
          "kind": "sql#backup",
          "state": "SUCCESSFUL",
          "backupInterval": {
                "startTime": "2020-01-21T11:25:33.858Z",
                "endTime": "2020-01-21T11:26:18.663Z",
           }
          "type": "FINAL",
          "instance": "INSTANCE_ID",
          "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",
          "location": "us"
          "description": "This is a final backup.",
          "backupKind": "SNAPSHOT",
          "dataDiskSizeGB": "10",
          "expiryTime": "2020-01-30T11:26:18.663Z",
          "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",
          "satisfies_pzs": false,
          "satisfies_pzi": false
    }
    
  2. 指定した最終バックアップから新しいインスタンスを復元します。

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

    • PROJECT_ID: プロジェクト ID
    • TARGET_INSTANCE_ID: ターゲット インスタンス ID
    • BACKUP_ID: バックアップ ID

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

    リクエストの本文(JSON):

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
      restore_instance_settings: {}
    }
    

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

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup"

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "RESTORE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "TARGET_INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

既存のインスタンスに復元する

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

プロジェクトのバックアップのリストが必要だが、停止が原因でインスタンスの概要ページに表示できない場合は、backupRuns.list API を使用できます。

Console

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

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

  2. ターゲット インスタンスにリードレプリカがある場合は、その他の操作メニュー その他アイコン を使用して削除します。
  3. Google Cloud コンソールで、[Cloud SQL のバックアップ] ページに移動します。

    [Cloud SQL バックアップ] に移動

    このページには、Google Cloud プロジェクトに関連付けられているすべてのバックアップ(最終バックアップを含む)が一覧表示されます。

  4. 別のインスタンスに復元するデータを含む最終バックアップをクリックします。
  5. [最終バックアップ] ダイアログで、[復元] をクリックします。
  6. [バックアップからのインスタンスの復元] ページの [バックアップの詳細を確認] で、正しいバックアップを選択していることを確認します。
  7. [復元先の選択] で、[既存のインスタンスを上書きする] を選択します。
  8. [上書きするインスタンス] メニューから、復元に使用するインスタンスを選択します。選択したインスタンスとそのすべてのデータが上書きされます。

  9. 選択を確定するには、上書きするインスタンスの名前を [移行先インスタンス ID] フィールドに入力します。
  10. 復元プロセスを開始するには、[復元] をクリックします。
  11. 復元オペレーションのステータスを確認するには、インスタンスの [オペレーション] ページに移動します。
  12. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

gcloud

  1. ターゲット インスタンスにリードレプリカがあるかどうかを確認するには、gcloud sql instances describe コマンドを使用します。
    gcloud sql instances describe TARGET_INSTANCE_NAME

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

  2. すべてのレプリカを削除するには、gcloud sql instances delete コマンドを使用します。
    gcloud sql instances delete REPLICA_NAME

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

  3. ソース インスタンスの最終バックアップを一覧表示するには、gcloud sql backups list コマンドを使用します。
    gcloud sql backups list \
    --filter='type:FINAL instance: SOURCE_INSTANCE_NAME'
  4. 使用するバックアップを見つけ、その NAME 値を記録します。
  5. バックアップからターゲット インスタンスを復元するには、gcloud sql backups restore コマンドを使用します。
    gcloud sql backups restore BACKUP_NAME \
    --restore-instance=TARGET_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?fields=replicaNames

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames" | Select-Object -Expand Content

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

    {
      "replicaNames": [
        "REPLICA_NAME"
      ]
    }
    
  2. すべてのレプリカを削除します。

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

    • PROJECT_ID: プロジェクト ID
    • REPLICA_ID: レプリカ ID

    HTTP メソッドと URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID

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

    次のコマンドを実行します。

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "DELETE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "REPLICA_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

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

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

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

    • PROJECT_ID: プロジェクト ID
    • INSTANCE_ID: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'" | Select-Object -Expand Content

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

    {
          "name": "projects/PROJECT_ID/backups/BACKUP_ID",
          "kind": "sql#backup",
          "state": "SUCCESSFUL",
          "backupInterval": {
                "startTime": "2020-01-21T11:25:33.858Z",
                "endTime": "2020-01-21T11:26:18.663Z",
           }
          "type": "FINAL",
          "instance": "INSTANCE_ID",
          "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",
          "location": "us"
          "description": "This is a final backup.",
          "backupKind": "SNAPSHOT",
          "dataDiskSizeGB": "10",
          "expiryTime": "2020-01-30T11:26:18.663Z",
          "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",
          "satisfies_pzs": false,
          "satisfies_pzi": false
    }
    
    復元が必要なインスタンスのバックアップを見つけます。
  4. バックアップからターゲット インスタンスを復元します。

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

    • PROJECT_ID: プロジェクト ID
    • TARGET_INSTANCE_ID: ターゲット インスタンス ID
    • BACKUP_ID: バックアップ ID

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

    リクエストの本文(JSON):

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
    }
    

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

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup"

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "RESTORE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "TARGET_INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    
  5. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

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?fields=replicaNames

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames" | Select-Object -Expand Content

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

    {
      "replicaNames": [
        "REPLICA_NAME"
      ]
    }
    
  2. すべてのレプリカを削除します。

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

    • PROJECT_ID: プロジェクト ID
    • REPLICA_ID: レプリカ ID

    HTTP メソッドと URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID

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

    次のコマンドを実行します。

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "DELETE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "REPLICA_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

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

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

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

    • PROJECT_ID: プロジェクト ID
    • INSTANCE_ID: インスタンス ID

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'

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

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'"

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'" | Select-Object -Expand Content

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

    {
          "name": "projects/PROJECT_ID/backups/BACKUP_ID",
          "kind": "sql#backup",
          "state": "SUCCESSFUL",
          "backupInterval": {
                "startTime": "2020-01-21T11:25:33.858Z",
                "endTime": "2020-01-21T11:26:18.663Z",
           }
          "type": "FINAL",
          "instance": "INSTANCE_ID",
          "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",
          "location": "us"
          "description": "This is a final backup.",
          "backupKind": "SNAPSHOT",
          "dataDiskSizeGB": "10",
          "expiryTime": "2020-01-30T11:26:18.663Z",
          "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",
          "satisfies_pzs": false,
          "satisfies_pzi": false
    }
    
    復元が必要なインスタンスのバックアップを見つけます。
  4. バックアップからターゲット インスタンスを復元します。

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

    • PROJECT_ID: プロジェクト ID
    • TARGET_INSTANCE_ID: ターゲット インスタンス ID
    • BACKUP_ID: バックアップ ID

    HTTP メソッドと URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

    リクエストの本文(JSON):

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
    }
    

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

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup"

    リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-21T22:43:37.981Z",
      "operationType": "RESTORE_BACKUP",
      "name": "OPERATION_ID",
      "targetId": "TARGET_INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    
  5. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

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

別のプロジェクトのインスタンスにデータを復元するユーザーは、ターゲット プロジェクトに対する 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/backups?filter='type:FINAL AND instance:INSTANCE_ID'

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

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'"

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'" | Select-Object -Expand Content

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

{
      "name": "projects/PROJECT_ID/backups/BACKUP_ID",
      "kind": "sql#backup",
      "state": "SUCCESSFUL",
      "backupInterval": {
            "startTime": "2020-01-21T11:25:33.858Z",
            "endTime": "2020-01-21T11:26:18.663Z",
       }
      "type": "FINAL",
      "instance": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",
      "location": "us"
      "description": "This is a final backup.",
      "backupKind": "SNAPSHOT",
      "dataDiskSizeGB": "10",
      "expiryTime": "2020-01-30T11:26:18.663Z",
      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",
      "satisfies_pzs": false,
      "satisfies_pzi": false
}

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

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

  • PROJECT_ID: プロジェクト ID
  • TARGET_INSTANCE_ID: ターゲット インスタンス ID
  • BACKUP_ID: バックアップ ID

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

リクエストの本文(JSON):

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
}

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

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID",
  "targetId": "TARGET_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}
project プロパティについて詳しくは、restoreBackup をご覧ください。

REST v1beta4

最終バックアップの backupId を取得するには、以下を実行します。

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

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'

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

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'"

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'" | Select-Object -Expand Content

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

{
      "name": "projects/PROJECT_ID/backups/BACKUP_ID",
      "kind": "sql#backup",
      "state": "SUCCESSFUL",
      "backupInterval": {
            "startTime": "2020-01-21T11:25:33.858Z",
            "endTime": "2020-01-21T11:26:18.663Z",
       }
      "type": "FINAL",
      "instance": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",
      "location": "us"
      "description": "This is a final backup.",
      "backupKind": "SNAPSHOT",
      "dataDiskSizeGB": "10",
      "expiryTime": "2020-01-30T11:26:18.663Z",
      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",
      "satisfies_pzs": false,
      "satisfies_pzi": false
}

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

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

  • PROJECT_ID: プロジェクト ID
  • TARGET_INSTANCE_ID: ターゲット インスタンス ID
  • BACKUP_ID: バックアップ ID

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

リクエストの本文(JSON):

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
}

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

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID",
  "targetId": "TARGET_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}
project プロパティについて詳しくは、restoreBackup をご覧ください。

別のリージョンの新しいインスタンスに復元する

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

また、別のリージョンにインスタンスを作成するには、そのリージョンの組織のポリシーの条件を満たす必要があります。

別のリージョンの新しいインスタンスにデータを復元するには:

gcloud

  1. ソース インスタンスの最終バックアップを一覧表示するには、gcloud sql backups list コマンドを使用します。
    gcloud sql backups list \
    --filter='type:FINAL instance: SOURCE_INSTANCE_NAME'
  2. 使用するバックアップを見つけ、その NAME 値を記録します。
  3. 最終バックアップを使用して、別のリージョンの新しいインスタンスにデータを復元するには、gcloud sql backups restore コマンドを使用します。
    gcloud sql backups restore BACKUP_NAME \
    --restore-instance=TARGET_INSTANCE_NAME \
    --region=TARGET_REGION 

REST v1

最終バックアップの backupId を取得するには、以下を実行します。

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

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'

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

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'"

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'" | Select-Object -Expand Content

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

{
      "name": "projects/PROJECT_ID/backups/BACKUP_ID",
      "kind": "sql#backup",
      "state": "SUCCESSFUL",
      "backupInterval": {
            "startTime": "2020-01-21T11:25:33.858Z",
            "endTime": "2020-01-21T11:26:18.663Z",
       }
      "type": "FINAL",
      "instance": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",
      "location": "us"
      "description": "This is a final backup.",
      "backupKind": "SNAPSHOT",
      "dataDiskSizeGB": "10",
      "expiryTime": "2020-01-30T11:26:18.663Z",
      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",
      "satisfies_pzs": false,
      "satisfies_pzi": false
}

バックアップを別のリージョンの新しいインスタンスに復元します。

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

  • PROJECT_ID: プロジェクト ID
  • TARGET_INSTANCE_ID: ターゲット インスタンス ID
  • BACKUP_ID: バックアップ ID
  • REGION: ターゲット インスタンスのリージョン(例: us-central1

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

リクエストの本文(JSON):

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
  restore_instance_settings: {
    region: REGION
  }
}

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

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID",
  "targetId": "TARGET_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}
project プロパティについて詳しくは、restoreBackup をご覧ください。

REST v1beta4

最終バックアップの backupId を取得するには、以下を実行します。

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

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'

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

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'"

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups?filter='type:FINAL AND instance:INSTANCE_ID'" | Select-Object -Expand Content

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

{
      "name": "projects/PROJECT_ID/backups/BACKUP_ID",
      "kind": "sql#backup",
      "state": "SUCCESSFUL",
      "backupInterval": {
            "startTime": "2020-01-21T11:25:33.858Z",
            "endTime": "2020-01-21T11:26:18.663Z",
       }
      "type": "FINAL",
      "instance": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",
      "location": "us"
      "description": "This is a final backup.",
      "backupKind": "SNAPSHOT",
      "dataDiskSizeGB": "10",
      "expiryTime": "2020-01-30T11:26:18.663Z",
      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",
      "satisfies_pzs": false,
      "satisfies_pzi": false
}

バックアップを別のリージョンの新しいインスタンスに復元します。

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

  • PROJECT_ID: プロジェクト ID
  • TARGET_INSTANCE_ID: ターゲット インスタンス ID
  • BACKUP_ID: バックアップ ID
  • REGION: ターゲット インスタンスのリージョン(例: us-central1

HTTP メソッドと URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

リクエストの本文(JSON):

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
  restore_instance_settings: {
    region: REGION
  }
}

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

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup" | Select-Object -Expand Content

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID",
  "targetId": "TARGET_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}
project プロパティについて詳しくは、restoreBackup をご覧ください。

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

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

次のステップ