インスタンスの復元

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

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

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

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

同じインスタンスへの復元

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

Console

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

    [Cloud SQL インスタンス] ページに移動

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

    インスタンスが削除されてから最大 1 週間はインスタンス名を再利用することはできません。

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. 復元オペレーションが完了したら、最初の手順で削除したレプリカを再作成します。

    インスタンスが削除されてから最大 1 週間はインスタンス名を再利用することはできません。

REST v1beta4

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

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

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

    HTTP メソッドと URL:

    GET https://www.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://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/restoreBackup

    JSON 本文のリクエスト:

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

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

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

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

    インスタンスが削除されてから最大 1 週間はインスタンス名を再利用することはできません。

別のインスタンスへの復元

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

Console

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

    [Cloud SQL インスタンス] ページに移動

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

    インスタンスが削除されてから最大 1 週間はインスタンス名を再利用することはできません。

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. 復元が完了したら、前に削除したレプリカを再作成します。

    インスタンスが削除されてから最大 1 週間はインスタンス名を再利用することはできません。

REST v1beta4

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

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

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

    HTTP メソッドと URL:

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

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

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

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

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

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

    HTTP メソッドと URL:

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

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

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

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

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

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

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

    HTTP メソッドと URL:

    GET https://www.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://www.googleapis.com/sql/v1beta4/projects/project-id/instances/target-instance-id/restoreBackup

    JSON 本文のリクエスト:

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

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

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

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

    インスタンスが削除されてから最大 1 週間はインスタンス名を再利用することはできません。

別のプロジェクトのインスタンスへの復元

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

権限

: 別のプロジェクトに復元するユーザーは、両方のプロジェクトで cloudsql.instances.restoreBackup 権限を持っている必要があります。この権限は、Cloud SQL Admin のロールに含まれています。

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

REST v1beta4

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

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

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

HTTP メソッドと URL:

GET https://www.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://www.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 をご覧ください

ポイントインタイム リカバリの実行

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

次のステップ