使用备份恢复实例

您可以从备份恢复实例,并将其恢复到特定时间段的新实例或现有实例。您可以恢复有效实例或已删除的实例。如需详细了解恢复功能的工作原理,请参阅恢复概览

如需使用备份来恢复实例,您必须执行以下操作:

  1. 找到要恢复的备份
  2. 使用备份恢复实例

备份的位置取决于实例的备份选项

恢复有效实例

您可以通过以下方式恢复备份:

恢复到同一实例

当您将数据从备份恢复到同一实例时,您可以将该实例上的数据恢复到进行备份时的状态。

如需使用备份将实例恢复到同一实例,请执行以下操作:

控制台

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

    前往“Cloud SQL 备份”

  2. 备份页面上,点击标准层级增强型层级,具体取决于实例的备份选项

  3. 如果实例使用的是标准备份,请选择要查看其备份的实例。

    如果实例使用的是增强型备份,请选择增强型层级,然后选择包含要使用的备份的备份保险柜。系统会显示备份保险柜中可用于所选实例的所有备份。

  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:实例的名称。

    如果实例使用的是增强型备份,请参阅列出备份保险柜中的所有备份

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

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

  4. 从备份恢复实例:

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

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

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

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

恢复到新实例或现有实例

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

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

如需将实例恢复到新实例或现有实例,请执行以下操作:

控制台

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

    前往“Cloud SQL 备份”

  2. 备份页面上,点击标准层级增强型层级,具体取决于实例的备份选项

  3. 如果实例使用的是标准备份,请选择要查看其备份的实例。

    如果实例使用的是增强型备份,请选择增强型层级,然后选择包含要使用的备份的备份保险柜。系统会显示备份保险柜中可用于所选实例的所有备份。

  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:实例的名称。

    如果实例使用的是增强型备份,请参阅列出备份保险柜中的所有备份

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

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

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

恢复到其他项目中的实例

您可以使用 project 参数将数据恢复到其他项目中的实例。当您从备份恢复到其他项目中的实例时,会将目标实例上的数据更新为进行备份时源实例的状态。

恢复到其他项目的用户必须拥有以下权限才能恢复实例: * 目标项目的 cloudsql.instances.restoreBackup 权限 * 源项目的 cloudsql.backupRuns.get 权限。

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

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

  2. 找到您要使用的备份。

    如果实例使用的是标准备份,请使用 gcloud sql backups list 命令找到备份,并记录其 ID 值:

    gcloud sql backups list INSTANCE_NAME
    

    替换以下内容:

    • INSTANCE_NAME:实例的名称。

    如果实例使用的是增强型备份,请参阅列出备份保险柜中的所有备份

  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

  1. 如需获取 backupId,请运行以下命令:

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

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

    HTTP 方法和网址:

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

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

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

    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. 如果实例使用的是标准备份,请点击包含要恢复的备份的已删除实例的名称。

    如果实例使用的是增强型备份,请选择增强型层级,然后选择包含要使用的备份的备份保险柜。系统会显示备份保险柜中可用于所选实例的所有备份。

  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:实例的名称。

    如果实例使用的是增强型备份,请参阅列出备份保险柜中的所有备份

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

    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

    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. 恢复到现有实例时,必须先从目标实例中删除所有副本,然后才能进行恢复。如需确定实例是否具有任何读取副本,请运行以下命令:

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

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

恢复到新实例

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

如需将数据从最终备份或保留的备份恢复到新实例,您必须拥有以下权限:

  • 目标项目的 cloudsql.instances.create 权限
  • 目标项目的 cloudsql.instances.restoreBackup 权限
  • 源备份的 cloudsql.backupRuns.get permission

Cloud SQL Admin 角色可提供这些权限。

如需使用备份将已删除的实例恢复到新实例,请执行以下操作:

控制台

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

    前往“Cloud SQL 备份”

  2. 备份页面上,点击标准层级增强型层级,具体取决于实例的备份选项

  3. 如果实例使用的是标准备份,请点击包含要恢复的备份的已删除实例的名称。

    如果实例使用的是增强型备份,请选择增强型层级,然后选择包含要使用的备份的备份保险柜。系统会显示备份保险柜中可用于所选实例的所有备份。

  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:实例的名称。

    如果实例使用的是增强型备份,请参阅列出备份保险柜中的所有备份

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

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

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

您可以使用 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:实例的名称。

    如果实例使用的是增强型备份,请参阅列出备份保险柜中的所有备份

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

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

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

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

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

后续步骤

* 了解如何重新创建读取副本。 * 详细了解如何备份数据。 * 了解如何备份数据。 参阅关于时间点恢复的 MySQL 文档。 * 参阅关于 mysqlbinlog 工具的 MySQL 文档