恢复实例

本页面介绍如何使用备份恢复您的实例。

如需了解恢复操作的相关信息、最佳做法和要求,请参阅实例恢复概览

从按需备份或自动备份中恢复

在以下情况下,您可以使用按需备份或自动备份:

  • 恢复到同一项目中的不同实例
  • 恢复到在其中进行备份的同一实例
  • 恢复到其他项目或区域中的不同实例

如果您启用了时间点恢复 (PITR),则可以根据实例的日志保留设置,将实例恢复到特定的时间点。

使用备份恢复实例要求备份和目标实例位于同一时区

恢复到不同实例

当您将数据从备份恢复到不同实例时,您可以将目标实例上的数据更新为进行备份时来源实例的状态。如需了解详情,请参阅关于执行恢复操作的一般提示以及关于恢复到不同实例的提示和要求

如果您需要项目的备份列表,但因发生服务中断而无法在实例概览页面上查看这些备份,则可以将 backupRuns.list API 与通配符 (-) 结合使用。通配符选项用于检索项目中所有实例的所有备份列表。如需了解详情,请参阅在服务中断期间查看备份

控制台

  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 方法和网址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 删除所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    对每个副本重复此操作。

  3. 如需获取您要使用的备份的 ID,请列出来源实例的备份。

    在使用任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    -或-

    如果实例位于发生服务中断的区域,请列出项目中的所有备份

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID,或 -(对于项目中所有备份的列表)

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    找到您需要恢复的实例的备份。
  4. 使用备份恢复目标实例。

    在使用任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • target-instance-id:目标实例 ID
    • source-instance-id:源实例 ID
    • backup-id:备份 ID

    HTTP 方法和网址:

    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 方法和网址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 删除所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    对每个副本重复此操作。

  3. 如需获取您要使用的备份的 ID,请列出来源实例的备份。

    在使用任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID

    HTTP 方法和网址:

    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 方法和网址:

    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. 恢复操作完成后,重新创建您在此过程中删除的任何副本。

恢复到同一实例

当您将数据从备份恢复到同一实例时,您可以将该实例上的数据恢复到进行备份时的状态。如需详细了解如何恢复实例,请参阅关于执行恢复操作的一般提示

控制台

  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 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 从指定的备份恢复实例。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID
    • BACKUP_ID:备份 ID

    HTTP 方法和网址:

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

    请求 JSON 正文:

    {
      "restoreBackupContext":
      {
        "backupRunId": "BACKUP_ID",
      }
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  3. 恢复操作完成后,重新创建您在此过程中删除的任何副本。

REST v1beta4

  1. 如需获取您要使用的备份的 ID,请列出实例的备份。

    在使用任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 从指定的备份恢复实例。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID
    • BACKUP_RUN_ID:Cloud SQL 从备份恢复实例的日期和时间戳

    HTTP 方法和网址:

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

    请求 JSON 正文:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  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 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

将备份恢复到其他项目中的实例:

在使用任何请求数据之前,请先进行以下替换:

  • source-project-id:源项目 ID
  • target-project-id:目标项目 ID
  • target-instance-id:目标实例 ID
  • source-instance-id:源实例 ID
  • backup-id:备份 ID

HTTP 方法和网址:

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

请求 JSON 正文:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

如需详细了解 project 属性,请参阅 restoreBackup

REST v1beta4

如需获取 backupId,请运行以下命令。

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

将备份恢复到其他项目中的实例:

在使用任何请求数据之前,请先进行以下替换:

  • source-project-id:源项目 ID
  • target-project-id:目标项目 ID
  • target-instance-id:目标实例 ID
  • source-instance-id:源实例 ID
  • backup-id:备份 ID

HTTP 方法和网址:

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

请求 JSON 正文:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

如需详细了解 project 属性,请参阅 restoreBackup

从最终备份恢复

在以下情况下,您可以使用最终备份:

  • 将最终备份恢复到新实例
  • 恢复到其他项目或区域中的新实例

由于您使用的是已删除实例的最终备份来恢复实例,因此还可以使用该备份来创建具有已删除实例配置的实例,并恢复您的数据。

恢复到新实例

当您从最终备份创建实例时,Cloud SQL 会使用在其中进行最终备份的实例的配置设置。创建实例后,Cloud SQL 会将数据恢复到进行最终备份时的状态。

控制台

  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 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 从指定的最终备份恢复新实例。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • TARGET_INSTANCE_ID:目标实例 ID
    • BACKUP_ID:备份 ID

    HTTP 方法和网址:

    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

  1. 如需获取您要使用的备份的 ID,请列出来源实例的最终备份。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 从指定的最终备份恢复新实例。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • TARGET_INSTANCE_ID:目标实例 ID
    • BACKUP_ID:备份 ID

    HTTP 方法和网址:

    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 响应:

恢复到现有实例

当您将数据从最终备份恢复到现有实例时,您可以将目标实例上的数据更新为进行备份时来源实例的状态。如需了解详情,请参阅关于执行恢复操作的一般提示以及关于恢复到不同实例的提示和要求

如果您需要项目的备份列表,但因发生服务中断而无法在实例概览页面上查看这些备份,则可以使用 backupRuns.list API。

控制台

  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 方法和网址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 删除所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    对每个副本重复此操作。

  3. 如需获取您要使用的最终备份的 ID,请列出来源实例的备份。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    找到您需要恢复的实例的备份。
  4. 使用备份恢复目标实例。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • TARGET_INSTANCE_ID:目标实例 ID
    • BACKUP_ID:备份 ID

    HTTP 方法和网址:

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

    请求 JSON 正文:

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  5. 恢复操作完成后,重新创建您在此过程中删除的任何副本。

REST v1beta4

  1. 如需确定实例是否具有任何读取副本以及获取这些副本的 ID,请列出目标实例的所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID

    HTTP 方法和网址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 删除所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    对每个副本重复此操作。

  3. 如需获取您要使用的备份的 ID,请列出来源实例的备份。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

    找到您需要恢复的实例的备份。
  4. 使用备份恢复目标实例。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • TARGET_INSTANCE_ID:目标实例 ID
    • BACKUP_ID:备份 ID

    HTTP 方法和网址:

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

    请求 JSON 正文:

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  5. 恢复操作完成后,重新创建您在此过程中删除的任何副本。

恢复到其他项目中的实例

将数据恢复到其他项目中的实例的用户必须具有 cloudsql.instances.restoreBackup 权限、目标项目的 cloudsql.instances.create 权限和来源实例的 cloudsql.backupRuns.get 权限。这些权限包含在 Cloud SQL Admin 角色中。

如需将数据恢复到其他项目中的实例,请按如下所述操作:

REST v1

如需获取最终备份的 backupId,请运行以下命令:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • INSTANCE_ID:实例 ID

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

将备份恢复到其他项目中的实例:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID

HTTP 方法和网址:

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

请求 JSON 正文:

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

如需详细了解 project 属性,请参阅 restoreBackup

REST v1beta4

如需获取最终备份的 backupId,请运行以下命令:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • INSTANCE_ID:实例 ID

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

将备份恢复到其他项目中的实例:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID

HTTP 方法和网址:

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

请求 JSON 正文:

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

如需详细了解 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 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

将备份恢复到其他区域中的新实例:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID
  • REGION:目标实例所在的区域(例如 us-central1

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

如需详细了解 project 属性,请参阅 restoreBackup

REST v1beta4

如需获取最终备份的 backupId,请运行以下命令:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • INSTANCE_ID:实例 ID

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

将备份恢复到其他区域中的新实例:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID
  • REGION:目标实例所在的区域(例如 us-central1

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

如需详细了解 project 属性,请参阅 restoreBackup

从保留的备份进行恢复

在以下情况下,您可以使用保留的备份

  • 将保留的备份恢复到新实例
  • 将保留的备份恢复到现有实例
  • 恢复到其他项目或区域中的新实例或现有实例

由于您使用的是已删除实例的保留的备份来恢复实例,因此还可以使用该备份来创建具有已删除实例配置的实例,并恢复您的数据。

将保留的备份恢复到新实例

当您从保留的备份创建新实例时,Cloud SQL 会使用在其中进行保留备份的实例的配置设置。

如需将数据从保留的备份恢复到新实例,您必须拥有 cloudsql.instances.create 权限。

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud SQL 备份页面。

    前往“Cloud SQL 备份”

  2. 点击包含要恢复的备份的已删除实例的名称。

  3. 找到要恢复的备份的名称,然后点击恢复

  4. 从备份恢复实例页面中,确认在查看备份详细信息中选择了正确的备份。

  5. 选择恢复目标位置中,选择恢复到新实例

  6. 区域菜单中,选择新实例的区域。

  7. 实例 ID 字段中,输入新实例的 ID。

  8. 点击恢复

    Cloud SQL 会将备份恢复到新实例。如需检查恢复操作的状态,请前往实例的操作页面。

gcloud

  1. 使用 gcloud sql backups list 查找要存储到新实例的备份。

    gcloud sql backups list
    --project=PROJECT_ID
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
  2. 找到您要使用的备份,并记录它的 BACKUP_NAME 值。

  3. 如需恢复到新实例,请使用 gcloud sql backups restore 命令:

    gcloud sql backups restore BACKUP_NAME
    --restore-instance=TARGET_INSTANCE_NAME
    

    替换以下内容:

    • BACKUP_NAME:要恢复的保留备份的名称。

    • TARGET_INSTANCE_NAME:要将备份恢复到的新实例的名称。

REST v1

从指定的保留备份恢复新实例

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID

HTTP 方法和网址:

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 方法和网址:

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 响应:

将保留的备份恢复到现有实例

当您将数据从保留的备份恢复到现有实例时,您可以将目标实例上的数据更新为进行备份时来源实例的状态。

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如果目标实例具有任何读取副本,请使用“更多操作”菜单 “更多操作”图标。 删除这些副本。必须先删除所有副本,然后才能将保留的备份恢复到现有实例。

  3. 在 Google Cloud 控制台中,前往 Cloud SQL 备份页面。

    前往“Cloud SQL 备份”

  4. 点击包含要恢复的备份的已删除实例的名称。

  5. 找到要恢复的备份的名称,然后点击恢复

  6. 从备份恢复实例页面中,确认在查看备份详细信息中选择了正确的备份。

  7. 选择恢复目标位置中,选择覆盖现有实例

  8. 要覆盖的实例菜单中,选择您要用于恢复的实例。您选择的实例及其所有数据都会被覆盖。

  9. 如需确认您的选择,请在目标实例 ID 字段中输入要覆盖的实例的名称。

  10. 点击恢复

    Cloud SQL 会将备份恢复到现有实例。如需检查恢复操作的状态,请前往实例的操作页面。

    恢复操作完成后,您可以创建任意副本。

gcloud

  1. 使用 gcloud sql instances describe 命令确定目标实例是否具有任何读取副本:

    gcloud sql instance describe TARGET_INSTANCE_NAME
    

    替换以下内容:

    • TARGET_INSTANCE_NAME:您要将备份恢复到的目标实例的名称。
  2. 使用 gcloud sql instances delete 命令删除目标实例的所有副本:

    gcloud sql instance delete REPLICA_NAME
    

    替换以下内容:

    • REPLICA_NAME:要删除的目标实例的副本的名称。

    必须先删除所有副本,然后才能恢复到现有实例。

  3. 使用 gcloud sql backups list 查找要恢复到现有实例的备份。

    gcloud sql backups list
    --project=PROJECT_ID
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
  4. 找到您要使用的备份,并记录它的 BACKUP_NAME 值。

  5. 如需恢复到现有实例,请使用 gcloud sql backups restore 命令:

    gcloud sql backups restore BACKUP_NAME
    --restore-instance=TARGET_INSTANCE_NAME
    

    替换以下内容:

    • BACKUP_NAME:要恢复的保留备份的名称。

    • TARGET_INSTANCE_NAME:要将备份恢复到的现有实例的名称。

    恢复操作完成后,重新创建已删除的任何副本。

REST v1

  1. 如需确定实例是否具有任何读取副本以及获取这些副本的 ID,请列出目标实例的所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID

    HTTP 方法和网址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 删除目标实例的所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  3. 获取要恢复的保留备份的 ID。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  4. 从保留的备份恢复目标实例。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • TARGET_INSTANCE_ID:目标实例 ID
    • BACKUP_ID:备份 ID

    HTTP 方法和网址:

    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. 如需确定实例是否具有任何读取副本以及获取这些副本的 ID,请列出目标实例的所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • INSTANCE_ID:实例 ID

    HTTP 方法和网址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 删除目标实例的所有副本。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  3. 获取要恢复的保留备份的 ID。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID

    HTTP 方法和网址:

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

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  4. 从保留的备份恢复目标实例。

    在使用任何请求数据之前,请先进行以下替换:

    • PROJECT_ID:项目 ID
    • TARGET_INSTANCE_ID:目标实例 ID
    • BACKUP_ID:备份 ID

    HTTP 方法和网址:

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

    请求 JSON 正文:

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

恢复到其他项目中的实例

如需使用其他项目中的保留备份来恢复实例,您必须拥有以下权限:

您只能使用 gcloud CLI 或 Cloud SQL API 恢复到其他项目。

gcloud

  1. 使用 gcloud sql backups list 查找要存储到新实例的备份。

    gcloud sql backups list
    --project=PROJECT_ID
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
  2. 找到您要使用的备份,并记录它的 BACKUP_NAME 值。

  3. 如需恢复到新实例,请使用 gcloud sql backups restore 命令:

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

    替换以下内容:

    • BACKUP_ID:要恢复的保留备份的名称。

    • TARGET_INSTANCE_NAME:您要将备份恢复到的目标项目中新实例的名称。

REST v1

如需获取保留备份的 backupID,请运行以下命令:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

恢复到其他项目

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID

HTTP 方法和网址:

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 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

恢复到其他项目

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID

HTTP 方法和网址:

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

请求 JSON 正文:

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

恢复到其他区域中的实例

如需使用其他区域中的保留备份来恢复实例,您必须拥有以下权限:

您只能使用 gcloud CLI 或 Cloud SQL API 恢复到其他区域。目标区域必须符合该区域的组织政策

gcloud

  1. 使用 gcloud sql backups list 查找要存储到新实例的备份。

    gcloud sql backups list
    --project=PROJECT_ID
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
  2. 找到您要使用的备份,并记录它的 NAME 值。

  3. 如需恢复到新实例,请使用 gcloud sql backups restore 命令:

    gcloud sql backups restore BACKUP_ID
    --restore-instance=TARGET_INSTANCE_NAME
    --region=TARGET_REGION
    

    替换以下内容:

    • BACKUP_ID:要恢复的保留备份的名称。

    • TARGET_INSTANCE_NAME:您要将备份恢复到的目标项目中新实例的名称。

    • TARGET_REGION:您要将备份恢复到的新区域。

REST v1

如需获取保留备份的 backupID,请运行以下命令:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

恢复到其他项目

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID
  • REGION:目标实例所在的区域(例如 us-central1

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

REST v1beta4

如需获取保留备份的 backupID,请运行以下命令:

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

恢复到其他项目

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:项目 ID
  • TARGET_INSTANCE_ID:目标实例 ID
  • BACKUP_ID:备份 ID
  • REGION:目标实例所在的区域(例如 us-central1

HTTP 方法和网址:

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

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

从备份保险柜中的备份进行恢复

如果您的 Cloud SQL 实例已启用增强型备份,则可以从备份保险柜中的备份恢复实例。 在以下情况下,您可以恢复实例:

  • 恢复到新实例
  • 恢复到现有实例
  • 恢复到其他项目中的新实例或现有实例

将备份从备份保险柜恢复到新实例

当您将数据从备份恢复到新实例时,您可以将目标实例上的数据更新为进行备份时来源实例的状态。

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud SQL 备份页面。

    前往“Cloud SQL 备份”

  2. 备份层级下拉菜单中,选择增强型层级,然后选择包含要使用的备份的备份保险柜

    系统会显示所选实例的备份保险柜中可用的所有备份。

  3. 找到要恢复的备份的名称,然后点击恢复

  4. 从备份恢复实例页面中,确认在查看备份详细信息中选择了正确的备份。

  5. 选择恢复目标位置中,选择恢复到新实例,然后更新以下内容:

    • 项目下,选择新实例的项目。项目必须与备份保险柜位于同一区域,并且您必须有权访问该项目。

    • 区域下,确认区域。该区域应与新实例的区域匹配。

    • 实例 ID 框中,为新实例指定名称。此名称是永久性的,无法更改。

  6. 点击恢复

    Cloud SQL 会将备份恢复到新实例。如需检查恢复操作的状态,请前往实例的操作页面。

    新实例默认值为标准备份选项。如需更新为增强型备份,请参阅启用增强型备份

    恢复操作完成后,您可以创建任意副本。

gcloud

如需恢复到新实例,请使用 gcloud sql backups restore 命令:

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

替换以下内容:

  • BACKUP_ID:备份保险柜中备份的 ID。您需要在此字段中添加备份的完整路径。如需查找完整路径,请参阅列出备份保险柜中实例的所有备份

  • TARGET_INSTANCE_NAME:要将备份恢复到的新实例的名称。

REST v1

REST v1beta4

将备份从备份保险柜恢复到现有实例

当您将数据从备份恢复到现有实例时,您可以将目标实例上的数据更新为进行备份时来源实例的状态。

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如果目标实例具有任何读取副本,请使用“更多操作”菜单 “更多操作”图标。 删除这些副本。必须先删除所有副本,然后才能将保留的备份恢复到现有实例。

  3. 在 Google Cloud 控制台中,前往 Cloud SQL 备份页面。

    前往“Cloud SQL 备份”

  4. 备份层级下拉菜单中,选择增强型层级,然后选择包含要使用的备份的备份保险柜

    系统会显示所选实例的备份保险柜中可用的所有备份。

  5. 找到要恢复的备份的名称,然后点击恢复

  6. 从备份恢复实例页面中,确认在查看备份详细信息中选择了正确的备份。

  7. 选择恢复目标位置中,选择覆盖现有实例

  8. 要覆盖的实例菜单中,选择您要用于恢复的实例。您选择的实例及其所有数据都会被覆盖。

  9. 如需确认您的选择,请在目标实例 ID 字段中输入要覆盖的实例的名称。

  10. 点击恢复

    Cloud SQL 会将备份恢复到现有实例。如需检查恢复操作的状态,请前往实例的操作页面。

    恢复操作完成后,您可以创建任意副本。

gcloud

如需将备份保险柜中的备份恢复到现有实例,请执行以下操作:

  1. 使用 gcloud sql instances describe 命令确定目标实例是否具有任何读取副本:

    gcloud sql instance describe TARGET_INSTANCE_NAME
    

    替换以下内容:

    • TARGET_INSTANCE_NAME:目标实例的名称。
  2. 使用 gcloud sql instances delete 命令删除目标实例的所有副本:

    gcloud sql instance delete REPLICA_NAME
    

    替换以下内容:

    • REPLICA_NAME:目标实例的副本的名称。

    必须先删除所有副本,然后才能恢复到现有实例。

  3. 使用列出备份保险柜中实例的所有备份找到要使用的备份。您需要提供完整备份路径地址才能进行恢复。

  4. 如需恢复到现有实例,请使用 gcloud sql backups restore 命令:

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

    替换以下内容:

    • BACKUP_ID:备份保险柜中备份的 ID。您需要在此字段中添加备份的完整路径。如需查找完整路径,请参阅列出备份保险柜中实例的所有备份

    • TARGET_INSTANCE_NAME:要将备份恢复到的现有实例的名称。

    恢复操作完成后,重新创建已删除的任何副本。

REST v1

REST v1beta4

将备份从备份保险柜恢复到其他项目中的新实例或现有实例

当您将数据从备份恢复到其他项目中的新实例或现有实例时,您可以将目标实例上的数据更新为进行备份时源实例的状态。您只能使用 gcloud CLI 或 Cloud SQL API 恢复到其他项目中的实例。

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:目标实例的副本的名称。

    必须先删除所有副本,然后才能恢复到现有实例。

  2. 使用列出备份保险柜中实例的所有备份找到要恢复的备份。您需要提供完整备份路径地址才能进行恢复。

  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:备份保险柜中备份的 ID。您需要在此字段中添加备份的完整路径。

    • TARGET_INSTANCE_NAME:您要恢复数据的目标项目中的实例。

    • SOURCE_INSTANCE_NAME:数据所在的源项目中的实例名称。

    • SOURCE_INSTANCE_PROJECT:包含源实例的项目。

REST v1

REST v1beta4

执行时间点恢复

如需执行时间点恢复,请参阅时间点恢复

后续步骤