从备份保险库恢复 Cloud SQL 实例

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

从最新备份恢复 Cloud SQL 实例

请按照以下说明恢复 Cloud SQL 实例。

控制台

  1. 在 Google Cloud 控制台中,前往保险库备份页面。
  • 最终用户应在目标实例所在的项目中具有 roles/cloudsql.admin 角色。
  • 最终用户应在源备份所在的项目中拥有 roles/backupdr.restoreUser 角色。 前往“受保管的备份”页面 受保管的备份页面仅列出已应用备份方案且备份已存储在相应项目中的备份保险柜中的数据资源。
  1. 选择要恢复的备份。在备份的备份详情页面中或从 菜单中选择恢复

“恢复”页面会显示,您可以在其中选择以下恢复选项:

  • 资源类型已预先填充为 Cloud SQL
  • 资源名称中,选择要恢复的 Cloud SQL 实例。
  • 点击备份后,系统会打开一个窗格,其中显示所有可用的备份。 选择要恢复的特定备份。
  • 选择恢复目标位置中,选择要将 Cloud SQL 实例恢复到的项目。
  • 点击继续
  • 下一页会显示目前的恢复详情,并提示您选择恢复目标位置,您可以选择以下选项:

    • 恢复到新实例:这会根据您在备份中存储的配置创建一个新实例。恢复完成后,您可以自定义实例。使用小写字母、数字和连字符提供新的实例 ID。以字母开头。
    • 覆盖现有实例:从可用实例列表中选择要覆盖的现有实例。
    • 覆盖源实例:这将覆盖当前实例。所选实例中的所有当前数据都将被覆盖,包括先前的时间点恢复日志。数据一旦被覆盖便无法恢复。不建议用于生产用途。

gcloud

准备工作

  1. 您需要先找到包含要恢复的备份的数据源。您可以从 Cloud SQL 实例项目或备份保险库项目中查找数据源:

    • 来自 Cloud SQL 实例项目:使用 data-source-reference
    gcloud alpha backup-dr data-source-references fetch-for-resource-type sqladmin.googleapis.com/Instance \
    --location=LOCATION \
    --project=CSQL_INSTANCE_PROJECT_ID \
    --filter='dataSourceGcpResourceInfo.cloudSqlInstanceProperties.name="projects/CSQL_INSTANCE_PROJECT_ID/instances/CSQL_INSTANCE_ID"' \
    --format="table(RESOURCE_NAME,DATA_SOURCE)"
    

    替换以下内容:

    + LOCATION: the location of the backup vault.
    + CSQL_INSTANCE_ID: the database name of the Cloud SQL instance.
    + CSQL_INSTANCE_PROJECT_ID: the project containing the Cloud SQL instance.
    
    • 从备份保险柜项目:使用 data-source
    gcloud backup-dr data-sources list \
    --location=LOCATION \
    --project=BACKUP_VAULT_PROJECT_ID \
    --filter='dataSourceGcpResource.cloudSqlInstanceDatasourceProperties.name=projects/CSQL_INSTANCE_PROJECT_ID/instances/CSQL_INSTANCE_ID' \
    --format="table(dataSourceGcpResource.cloudSqlInstanceDatasourceProperties.name:label=RESOURCE_NAME,name:label=DATA_SOURCE)"
    

    替换以下内容:

    + LOCATION: the location of the backup vault.
    + CSQL_INSTANCE_ID: the name of the Cloud SQL instance.
    + CSQL_INSTANCE_PROJECT_ID: the project containing the Cloud SQL instance.
    + BACKUP_VAULT_PROJECT_ID: the project containing the backup vault.
    
  2. 列出并选择要恢复的备份。您需要列出数据源中的所有备份。为此,请使用 backups list 命令。

    gcloud backup-dr backups list --data-source=DATA_SOURCE \
    --format="table(consistencyTime,backupType,name:label=BACKUP_NAME)"
    

恢复备份

如需使用 Cloud SQL 恢复命令恢复 Cloud SQL 实例,请使用以下命令。

   gcloud sql backups restore BACKUP_NAME \
   --restore-instance=RESTORE_INSTANCE \
   --project=RESTORE_PROJECT

替换以下内容:

      + BACKUP_NAME: the backup vault name you want to restore data from.
      + RESTORE_INSTANCE: The target Cloud SQL instance name.
      + RESTORE_PROJECT: the project where you want to restore the Cloud SQL instance.

如需替换其他属性,请参阅 Backup and DR Service Google Cloud CLI 命令概览

将 Cloud SQL 实例恢复到其他时间点

按照以下说明将 Cloud SQL 实例恢复到某个时间点。恢复到某个时间点时,您会创建一个 Cloud SQL 克隆。

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

    前往“受保管的备份”页面

  2. 在表格顶部,依次选择过滤表格 > 资源类型。 选择 Cloud SQL。这样一来,系统只会显示项目中已应用备份方案且备份已存储在备份保险柜中的 Cloud SQL 实例。

  3. 点击从某个时间点开始恢复。 系统会打开 Cloud SQL 创建克隆页面。

  4. 按照使用备份保险库执行 PITR 中的步骤操作。