バックアップを使用してインスタンスを復元する

バックアップからインスタンスを復元し、特定の期間に新しいインスタンスまたは既存のインスタンスに復元できます。ライブ インスタンスまたは削除済みインスタンスを復元できます。復元の仕組みについて詳しくは、復元の概要をご覧ください。

バックアップを使用してインスタンスを復元するには、次の操作を行う必要があります。

  1. 復元するバックアップを見つける
  2. バックアップを使用してインスタンスを復元する

バックアップの場所は、インスタンスのバックアップ オプションによって異なります。

ライブ インスタンスを復元する

次の方法でバックアップを復元できます。

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

バックアップから同じインスタンスにデータを復元すると、そのインスタンス上のデータが、バックアップを取得したときの状態に戻ります。

バックアップを使用して同じインスタンスにインスタンスを復元するには、次の操作を行います。

コンソール

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

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

  2. [バックアップ] ページで、インスタンスのバックアップ オプションに応じて、[スタンダード ティア] または [拡張ティア] をクリックします。

  3. インスタンスで標準バックアップを使用している場合は、バックアップを表示するインスタンスを選択します。

    インスタンスで拡張バックアップを使用している場合は、[拡張ティア] を選択し、使用するバックアップを含む Backup Vault を選択します。選択したインスタンスの Backup Vault で使用可能なすべてのバックアップが表示されます。

  4. 復元するバックアップの名前を見つけて、[復元] をクリックします。

  5. [復元先の選択] で、[ソース インスタンスを上書きする] を選択します。

  6. [宛先インスタンス ID] フィールドに、上書きするインスタンスの名前を入力して、選択内容を確認します。

  7. [復元] をクリックします。

    Cloud SQL はバックアップを同じインスタンスに復元します。復元オペレーションのステータスを確認するには、インスタンスの [オペレーション] ページに移動します。

    復元オペレーションが完了したら、レプリカを作成できます。

gcloud

  1. 復元する前に、インスタンスからすべてのレプリカを削除する必要があります。

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

    gcloud sql instances describe INSTANCE_NAME
    

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

    • INSTANCE_NAME: インスタンスの名前。

    インスタンスにレプリカが含まれている場合は、gcloud sql instances delete コマンドを使用してレプリカを削除します。

    gcloud sql instances delete REPLICA_NAME
    

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

    • REPLCICA_NAME: レプリカの名前。
  2. 使用するバックアップを見つけます。

    インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。

    gcloud sql backups list INSTANCE_NAME
    

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

    • INSTANCE_NAME: インスタンスの名前。

    インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示するをご覧ください。

  3. 指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=BACKUP_ID
    

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

    • BACKUP_ID: 復元するバックアップの ID。
    • INSTANCE_NAME: インスタンスの名前。
  4. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

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

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

    次のような 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 レスポンスが返されます。

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

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

    • 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 レスポンスが返されます。

  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

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

    次のような 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
    • 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",
      }
    }
    

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

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

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

新しいインスタンスまたは既存のインスタンスに復元する

バックアップから別のインスタンスにデータを復元すると、ターゲット インスタンス上のデータが、バックアップを取得したときのソース インスタンスの状態に更新されます。

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

インスタンスを新しいインスタンスまたは既存のインスタンスに復元する手順は次のとおりです。

コンソール

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

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

  2. [バックアップ] ページで、インスタンスのバックアップ オプションに応じて、[スタンダード ティア] または [拡張ティア] をクリックします。

  3. インスタンスで標準バックアップを使用している場合は、バックアップを表示するインスタンスを選択します。

    インスタンスで拡張バックアップを使用している場合は、[拡張ティア] を選択し、使用するバックアップを含む Backup Vault を選択します。選択したインスタンスの Backup Vault で使用可能なすべてのバックアップが表示されます。

  4. 復元するバックアップの名前を見つけて、[復元] をクリックします。

  5. [復元先の選択] で、次の操作を行います。

    • インスタンスを新しいインスタンスに復元する場合は、[新しいインスタンスに復元する] を選択し、次の項目を更新します。

      • [リージョン] で、リージョンを確認します。リージョンは、新しいインスタンスのリージョンと一致している必要があります。
      • [インスタンス ID] ボックスに、新しいインスタンスの名前を入力します。この名前は永続的に使用され変更できません。
    • インスタンスを既存のインスタンスに復元する場合は、[既存のインスタンスを上書きする] を選択して、次の操作を行います。

      • [上書きされるインスタンス] メニューから、復元に使用するインスタンスを選択します。選択したインスタンスとそのすべてのデータが上書きされます。

      • [宛先インスタンス ID] フィールドに、上書きするインスタンスの名前を入力して、選択内容を確認します。

  6. [復元] をクリックします。

    Cloud SQL は、選択内容に応じて、バックアップを新しいインスタンスまたは既存のインスタンスに復元します。復元オペレーションのステータスを確認するには、インスタンスの [オペレーション] ページに移動します。

    復元オペレーションが完了したら、レプリカを作成できます。

gcloud

  1. 既存のインスタンスに復元する場合は、復元する前に、ターゲット インスタンスからすべてのレプリカを削除する必要があります。

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

    gcloud sql instances describe TARGET_INSTANCE_NAME
    

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

    • TARGET_INSTANCE_NAME: インスタンスの名前。

    インスタンスにレプリカが含まれている場合は、gcloud sql instances delete コマンドを使用してレプリカを削除します。

    gcloud sql instances delete REPLCICA_NAME
    

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

    • REPLCICA_NAME: レプリカの名前。
  2. 使用するバックアップを見つけます。

    インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。

    gcloud sql backups list INSTANCE_NAME
    

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

    • INSTANCE_NAME: インスタンスの名前。

    インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示するをご覧ください。

  3. 指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。

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

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

    • BACKUP_ID: 復元するバックアップの ID。
    • TARGET_INSTANCE_NAME: ターゲットの新規または既存のインスタンスの名前。
    • SOURCE_INSTANCE_NAME: ソース インスタンスの名前。
  4. 既存のインスタンスに復元する場合は、復元オペレーションの完了後に、この手順で削除したレプリカを再作成します。

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

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

    次のような 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 レスポンスが返されます。

  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. インスタンスにリードレプリカがあるかどうかを確認し、それらの ID を取得するには、インスタンスのすべてのレプリカを一覧表示します。

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

    • 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 パラメータを使用して、別のプロジェクトのインスタンスにデータを復元できます。バックアップから別のプロジェクトのインスタンスに復元すると、ターゲット インスタンス上のデータが、バックアップを取得したときのソース インスタンスの状態に更新されます。

別のプロジェクトに復元するユーザーには、インスタンスを復元するための次の権限が付与されている必要があります。 * ターゲット プロジェクトに対する cloudsql.instances.restoreBackup 権限 * ソース プロジェクトに対する cloudsql.backupRuns.get 権限。

これらの権限は、Cloud SQL Admin ロールに含まれています。

バックアップを使用して別のプロジェクトまたはリージョンのインスタンスにインスタンスを復元するには、次の操作を行います。

gcloud

Backup Vault から既存のインスタンスにバックアップを復元するには、次の操作を行います。

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

    gcloud sql instance describe TARGET_INSTANCE_NAME
    

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

    • TARGET_INSTANCE_NAME: バックアップを復元するターゲット インスタンスの名前。

    gcloud sql instances delete コマンドを使用して、ターゲット インスタンスのすべてのレプリカを削除します。

    gcloud sql instance delete REPLICA_NAME
    

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

    • REPLICA_NAME: ターゲット インスタンスのレプリカの名前。

    既存のインスタンスに復元する前に、すべてのレプリカを削除する必要があります。

  2. 使用するバックアップを見つけます。

    インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。

    gcloud sql backups list INSTANCE_NAME
    

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

    • INSTANCE_NAME: インスタンスの名前。

    インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示するをご覧ください。

  3. 新しいプロジェクトの新しいインスタンスまたは既存のインスタンスに復元するには、gcloud sql backups restore コマンドを使用します。

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

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

    • BACKUP_ID: Backup Vault のバックアップの ID。このフィールドにはバックアップのフルパスを入力する必要があります。

    • TARGET_INSTANCE_NAME: データを復元する宛先プロジェクト内のインスタンス。

    • SOURCE_INSTANCE_NAME: データが存在するソース プロジェクトのインスタンス名。

    • SOURCE_INSTANCE_PROJECT: ソース インスタンスを含むプロジェクト。

REST v1

  1. backupId を取得するには、以下の操作を行います。

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

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

    HTTP メソッドと URL:

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

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

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

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

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

    • 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 レスポンスが返されます。

REST v1beta4

  1. backupId を取得するには、以下の操作を行います。

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

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

    HTTP メソッドと URL:

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

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

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

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

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

    • 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 レスポンスが返されます。

削除したインスタンスを復元する

最終バックアップまたは保持されたバックアップを使用して、次のシナリオで削除されたインスタンスを復元できます。

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

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

バックアップを使用して削除されたインスタンスを既存のインスタンスに復元するには、次の操作を行います。

コンソール

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

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

  2. ターゲット インスタンスにリードレプリカがある場合は、その他の操作メニュー その他アイコン を使用して削除します。保持されたバックアップまたは最終バックアップを既存のインスタンスに復元するには、まずすべてのレプリカを削除する必要があります。

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

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

  4. [バックアップ] ページで、インスタンスのバックアップ オプションに応じて、[スタンダード ティア] または [拡張ティア] をクリックします。

  5. インスタンスで標準バックアップを使用している場合は、復元するバックアップを含む削除済みインスタンスの名前をクリックします。

    インスタンスで拡張バックアップを使用している場合は、[拡張ティア] を選択し、使用するバックアップを含む Backup Vault を選択します。選択したインスタンスの Backup Vault で使用可能なすべてのバックアップが表示されます。

  6. 復元するバックアップの名前を見つけて、[復元] をクリックします。

  7. [バックアップからのインスタンスの復元] ページの [バックアップの詳細を確認] で、正しいバックアップを選択していることを確認します。

  8. [復元先の選択] セクションで、[既存のインスタンスを上書きする] を選択します。

  9. [上書きされるインスタンス] メニューから、バックアップの復元先となるインスタンスを選択します。選択したインスタンスとそのすべてのデータが上書きされます。

  10. 選択を確定するには、上書きするインスタンスの名前を [移行先インスタンス ID] フィールドに入力します。

  11. [復元] をクリックします。

    Cloud SQL はバックアップを既存のインスタンスに復元します。 復元オペレーションのステータスを確認するには、インスタンスの [オペレーション] ページに移動します。

    復元オペレーションが完了したら、レプリカを作成できます。

gcloud

1.  When restoring to an existing instance, all replicas must be deleted
from your target instance prior to restoring.

Determine if your instance has any read replicas using the
[`gcloud sql instances describe`](/sdk/gcloud/reference/sql/instances/describe)
command:

```gcloud
gcloud sql instances describe TARGET_INSTANCE_NAME
```

Replace the following:

*   `TARGET_INSTANCE_NAME`: the name of the instance.

If your instance contains replicas, then delete the replicas
using the
[`gcloud sql instances delete`](/sdk/gcloud/reference/sql/instances/delete)
command:

```gcloud
gcloud sql instances delete REPLCICA_NAME
```

Replace the following:

*   `REPLCICA_NAME`: the name of the replica.
  1. 使用するバックアップを見つけます。

    インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。

    gcloud sql backups list INSTANCE_NAME
    

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

    • INSTANCE_NAME: インスタンスの名前。

    インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示するをご覧ください。

  2. 指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME
    

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

    • BACKUP_ID: 復元するバックアップの ID。
    • TARGET_INSTANCE_NAME: 新しいターゲット インスタンスまたは既存のターゲット インスタンスの名前。
  3. 復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。

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

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups

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

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

  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
    }
    

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

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

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

    HTTP メソッドと URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups

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

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

  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
    }
    

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

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

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

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

最終バックアップまたは保持されたバックアップから新しいインスタンスにデータを復元するには、次の権限を付与されている必要があります。

  • ターゲット プロジェクトに対する cloudsql.instances.create 権限
  • ターゲット プロジェクトに対する cloudsql.instances.restoreBackup 権限
  • ソース バックアップに対する cloudsql.backupRuns.get permission

これらの権限は、Cloud SQL 管理者ロールに含まれています。

バックアップを使用して削除されたインスタンスを新しいインスタンスに復元するには、次の操作を行います。

コンソール

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

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

  2. [バックアップ] ページで、インスタンスのバックアップ オプションに応じて、[スタンダード ティア] または [拡張ティア] をクリックします。

  3. インスタンスで標準バックアップを使用している場合は、復元するバックアップを含む削除済みインスタンスの名前をクリックします。

    インスタンスで拡張バックアップを使用している場合は、[拡張ティア] を選択し、使用するバックアップを含む Backup Vault を選択します。選択したインスタンスの Backup Vault で使用可能なすべてのバックアップが表示されます。

  4. 復元するバックアップの名前を見つけて、[復元] をクリックします。

  5. [バックアップからのインスタンスの復元] ページの [バックアップの詳細を確認] で、正しいバックアップを選択していることを確認します。

  6. [復元先の選択] セクションで、[新しいインスタンスに復元する] を選択します。

  7. [リージョン] メニューから、新しいインスタンスのリージョンを選択します。

  8. [インスタンス ID] フィールドに、新しいインスタンスの ID を入力します。 この ID は作成後に変更できません。

  9. [復元] をクリックします。

    Cloud SQL はバックアップを既存のインスタンスに復元します。 復元オペレーションのステータスを確認するには、インスタンスの [オペレーション] ページに移動します。

gcloud

  1. 使用するバックアップを見つけます。

    インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。

    gcloud sql backups list INSTANCE_NAME
    

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

    • INSTANCE_NAME: インスタンスの名前。

    インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示するをご覧ください。

  2. 指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME
    

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

    • BACKUP_ID: 復元するバックアップの ID。
  3. TARGET_INSTANCE_NAME: 新しいターゲット インスタンスまたは既存のターゲット インスタンスの名前。

REST v1

指定した保持されたバックアップまたは最終バックアップから新しいインスタンスを復元する

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

  • 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: {}
}

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

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

REST v1beta4

指定した保持されたバックアップまたは最終バックアップから新しいインスタンスを復元する

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

  • 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: {}
}

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

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

別のプロジェクトの新しいインスタンスまたは既存のインスタンスに復元する

project パラメータを使用して、別のプロジェクトのインスタンスにデータを復元できます。削除されたインスタンスをバックアップから別のプロジェクトのインスタンスに復元すると、ターゲット インスタンスが、バックアップを取得したときのソース インスタンスの状態に更新されます。

別のプロジェクトに復元するユーザーには、インスタンスを復元するための次の権限が付与されている必要があります。 * ターゲット プロジェクトに対する cloudsql.instances.create 権限 * ターゲット プロジェクトに対する cloudsql.instances.restoreBackup 権限 * ソース バックアップに対する cloudsql.backupRuns.get permission 権限

これらの権限は、Cloud SQL Admin ロールに含まれています。

バックアップを使用して別のプロジェクトまたはリージョンのインスタンスにインスタンスを復元するには、次の操作を行います。

gcloud

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

    gcloud sql instance describe TARGET_INSTANCE_NAME
    

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

    • TARGET_INSTANCE_NAME: バックアップを復元するターゲット インスタンスの名前。

    gcloud sql instances delete コマンドを使用して、ターゲット インスタンスのすべてのレプリカを削除します。

    gcloud sql instance delete REPLICA_NAME
    

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

    • REPLICA_NAME: ターゲット インスタンスのレプリカの名前。

    既存のインスタンスに復元する前に、すべてのレプリカを削除する必要があります。

    1. 使用するバックアップを見つけます。

    インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。

    gcloud sql backups list INSTANCE_NAME
    

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

    • INSTANCE_NAME: インスタンスの名前。

    インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示するをご覧ください。

  2. 新しいプロジェクトの新しいインスタンスまたは既存のインスタンスに復元するには、gcloud sql backups restore コマンドを使用します。

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

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

    • BACKUP_ID: Backup Vault のバックアップの ID。このフィールドにはバックアップのフルパスを入力する必要があります。

    • TARGET_INSTANCE_NAME: データを復元する宛先プロジェクト内のインスタンス。

    • SOURCE_INSTANCE_NAME: データが存在するソース プロジェクトのインスタンス名。

    • SOURCE_INSTANCE_PROJECT: ソース インスタンスを含むプロジェクト。

REST v1

保持されたバックアップまたは最終バックアップの backupID を取得するには、次のコマンドを実行します。

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

  • PROJECT_ID: プロジェクト ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups

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

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

別のプロジェクトに復元する

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

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

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

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

REST v1beta4

保持されたバックアップまたは最終バックアップの backupID を取得するには、次のコマンドを実行します。

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

  • PROJECT_ID: プロジェクト ID

HTTP メソッドと URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups

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

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

別のプロジェクトに復元する

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

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

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

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

次のステップ

* リードレプリカを再作成する方法を確認する。* データのバックアップの詳細について学ぶ。* データのバックアップ方法を確認する。* MySQL のポイントインタイム リカバリに関するドキュメントを参照する。* MySQL の mysqlbinlog ツールに関するドキュメントを参照する。