将 AlloyDB 集群备份到备份保险柜

本页面介绍了如何将 AlloyDB 备份到备份保险柜。将备份发送到备份保险柜可提供不可变性和强制保留。

在 Google Cloud 控制台中,您可以通过应用备份方案将 AlloyDB for PostgreSQL 集群备份到 备份保险柜。您可以通过以下两种方式之一进行备份。这两种方法都允许您将备份安全地存储在备份保险柜中,从而提供一种可靠的方式来恢复 AlloyDB 集群,以防数据丢失或其他意外事件。

  • 计划备份 。您可以按特定时间间隔(例如每天、每周、每月或每年)自动备份 AlloyDB for PostgreSQL 集群。
  • 按需备份 。您可以根据需要随时创建按需备份。 按需备份非常适合在对数据库进行重大更改之前创建备份,或用于临时数据保护。

准备工作

  1. 在 AlloyDB for PostgreSQL 集群所在的位置启用 Backup and DR API。

    启用该 API

    1. 创建备份保险柜
    2. 创建备份方案

    3. 为备份用户分配 IAM 角色和权限

    4. 在 AlloyDB 项目中授予备份保险柜访问权限

    5. 在存储桶上设置 Observability Analytics 以监控 Backup and DR 备份作业。

备份用户的 IAM 角色和权限

如需获得配置计划备份或运行按需备份所需的权限,请让您的管理员向您授予备份保险柜项目的以下 IAM 角色:

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

这些预定义角色包含 配置计划备份或运行按需备份所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需配置计划备份或运行按需备份,需要具备以下权限:

  • backupdr.backupPlans.list
  • backupdr.backupPlanAssociations.createForAlloydbCluster
  • backupdr.backupPlanAssociations.fetchForAlloydbCluster
  • backupdr.backupPlanAssociations.list
  • backupdr.backupPlanAssociations.getForAlloydbCluster
  • backupdr.backupPlanAssociations.triggerBackupForAlloydbCluster
  • backupdr.backupPlanAssociations.deleteForAlloydbCluster
  • backupdr.backupPlans.useForAlloydbCluster
  • backupdr.locations.list
  • backupdr.operations.get
  • cloudasset.assets.searchAllResources

您也可以使用自定义角色或其他预定义角色来获取这些权限。

下表列出了每个 API 调用所需的动态权限:

资源 要对资源执行的操作 每个 API 调用所需的权限 需要分配到的项目
备份保险柜 创建 BackupVault backupdr.backupVaults.create 管理项目
删除 BackupVault backupdr.backupVaults.delete 管理项目
更新 BackupVault backupdr.backupVaults.update 管理项目
列出 BackupVault backupdr.backupVaults.list 管理项目
获取 BackupVault backupdr.backupVaults.get 管理项目
备份方案 创建 BackupPlan backupdr.backupPlans.create 管理项目
删除 BackupPlan backupdr.backupPlans.delete 管理项目
获取 BackupPlan backupdr.backupPlans.get 管理项目
列出备份方案 backupdr.backupPlans.list 管理项目
备份方案关联 创建备份方案关联 backupdr.backupPlanAssociations.createForAlloydbCluster 工作负载项目
删除备份方案关联 backupdr.backupPlanAssociations.deleteForAlloydbCluster 工作负载项目
在备份方案关联中触发按需备份 backupdr.backupPlanAssociations.triggerBackupForAlloydbCluster 工作负载项目
获取备份方案关联 backupdr.backupPlanAssociations.getForAlloydbCluster 工作负载项目
列出备份方案关联 backupdr.backupPlanAssociations.list 工作负载项目
提取备份方案关联 backupdr.backupPlanAssociations.fetchForAlloydbCluster 工作负载项目
数据源 获取数据源 backupdr.bvdataSources.get 管理项目
列出数据源 backupdr.bvdataSources.list 管理项目
PiTR 恢复 backupdr.bvdataSources.useReadOnlyForAlloydbCluster 管理项目
备份 获取备份 backupdr.bvbackups.get 管理项目
列出备份 backupdr.bvbackups.list 管理项目
删除备份 backupdr.bvbackups.delete 管理项目
恢复备份 backupdr.bvbackups.useReadOnlyForAlloydbCluster 管理项目
数据源引用 获取数据源引用 backupdr.dataSourceReferences.getForAlloydbCluster 工作负载项目
提取数据源引用 backupdr.dataSourceReferences.fetchForAlloydbCluster 工作负载项目
操作 列出操作 backupdr.operations.list 相应项目
获取操作 backupdr.operations.get 相应项目

在 AlloyDB for PostgreSQL 项目中授予备份保险柜访问权限

如需在创建备份保险柜的项目以外的项目中备份 AlloyDB 集群,您必须在 AlloyDB 项目中向备份保险柜服务代理授予 Backup and DR AlloyDB Operator (roles/backupdr.alloydbOperator) IAM 角色。如果存储备份的备份保险柜项目与 AlloyDB 项目不同,请在 AlloyDB 项目中向备份保险柜服务代理分配该角色。

如需在创建备份保险柜的同一项目中备份 AlloyDB 集群,则无需授予任何角色。

如需了解如何在您打算备份的项目中向备份保险柜服务代理授予角色 ,请参阅向服务代理授予角色。

配置计划备份

如需为 AlloyDB 集群配置计划备份,请按照以下说明操作。

控制台

  1. 在 Google Cloud 控制台中,前往 Backup and DR Vaulted backups (受保管的备份)页面。

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

  2. 点击 Schedule backup (安排备份)。

  3. 在 Resource Type (资源类型)列表中,选择 AlloyDB 。

  4. 在 Project (项目)列表中,选择 AlloyDB 集群所在的项目。

  5. 在 Region (区域)列表中,选择集群所在的区域。

  6. 在 Resources (资源)列表中,点击 Browse (浏览)。选择要备份的 AlloyDB 集群,然后点击 Done (完成)。

  7. 点击继续 。

  8. 在 Backup plan (备份方案)列表中,点击 Select (选择)。

  9. 选择要用于保护 AlloyDB 集群的备份方案。

  10. 点击完成 。

  11. 查看备份详细信息,然后点击 Schedule (安排)。

gcloud

  1. 配置计划备份。

      gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \
          --location=ALLOYDB_REGION \
          --project=ALLOYDB_PROJECT_ID \
          --resource=projects/ALLOYDB_PROJECT_ID/clusters/ALLOYDB_CLUSTER_ID \
          --resource-type=alloydb.googleapis.com/Cluster \
          --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN
      ```
    
    Replace the following:
    
    • BACKUP_PLAN_ASSOCIATION_NAME:备份方案关联的名称。
    • ALLOYDB_REGION:AlloyDB 集群所在的区域。
    • ALLOYDB_PROJECT_ID:AlloyDB 集群所在项目的名称。
    • ALLOYDB_CLUSTER_ID:AlloyDB 集群 ID。
    • PROJECT_ID:备份方案所在项目的名称。
    • LOCATION:集群的位置。

列出已安排备份的集群

如需列出已安排备份的 AlloyDB 集群,请按照以下说明操作。

控制台

  1. 在 Google Cloud 控制台中,前往 Backup and DR Vaulted backups (受保管的备份)页面。

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

  2. 在表格顶部,依次选择 Filter table (过滤表格)> Resource type (资源类型)。选择 AlloyDB 。这样会过滤显示内容,以便仅显示已应用备份方案且备份已存储在项目中的备份保险柜内的 AlloyDB 集群。

gcloud

列出已安排备份的 AlloyDB 集群:

  gcloud backup-dr backup-plan-associations fetch-for-resource-type alloydb.googleapis.com/Cluster \
  --location=LOCATION \
  --project=PROJECT_ID

替换以下内容:

  • LOCATION:计划备份的位置。
  • PROJECT_ID:AlloyDB 集群所在项目的名称。

创建按需备份

您可以为具有备份方案的 AlloyDB 集群启动按需备份,方法是触发您选择的备份规则立即运行。按需备份通常仅捕获自上次备份以来更改的数据(增量)。

创建按需备份时,您可以从与 AlloyDB 集群关联的备份方案中选择一条规则。 此规则决定了按需备份的删除时间。您可以从 Jobs (作业)页面查看备份作业状态。如需了解详情,请参阅 在控制台中监控备份和恢复作业 Google Cloud 。

按照以下说明创建按需备份。

控制台

  1. 在 Google Cloud 控制台中,前往 Backup and DR Vaulted backups (受保管的备份)页面。

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

    Vaulted backups (受保管的备份)页面仅列出已应用备份方案且备份已存储在项目中的备份保险柜内的数据资源。

  2. 选择要备份的资源。从 菜单或资源的详情页面中,选择 Create on-demand backup。

  3. 使用以下选项之一指定备份的删除时间:

    • 基于自定义保留期限 (预览版):向备份方案添加自定义按需保留期限,默认情况下,该期限设置为备份保险柜的最短强制保留期限,外加 30 天。
    • 基于现有备份规则:从 Delete backups after(在以下时间后删除备份)下拉菜单中选择现有规则。
  4. 点击 Create (创建)以开始创建按需备份。

  5. 如需查看按需备份作业的状态,请点击 Notifications (通知)。

gcloud

使用以下选项之一创建按需备份:

  • 基于备份规则:

    gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
    --backup-rule-id=RULE_ID \
    --project=PROJECT_ID \
    --location=LOCATION \
    [--no-async]
    
  • 基于自定义保留期限:

    gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
    --custom-retention-days=CUSTOM_RETENTION \
    --project=PROJECT_ID \
    --location=LOCATION \
    --labels=LABELS
    

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME:备份方案关联的名称。

    • RULE_ID:您要关联以运行按需备份的备份规则名称。

    • PROJECT_ID:项目的名称。

    • LOCATION:计划备份的位置。

    • CUSTOM_RETENTION:此按需备份的自定义保留期限(以天为单位)。此值必须大于或等于备份保险柜保留时间,并且小于或等于在备份方案中配置的 max-custom-on-demand-retention-days 值(如果未配置 max-custom-on-demand-retention-days,则为保险柜保留时间 + 30 天)。

    • LABELS:备份的可选标签,以逗号分隔的键值对形式表示,例如 webserver=backend,media=images。

更改应用于 AlloyDB 集群的备份方案

您可以将应用于 AlloyDB 集群的备份方案更改为另一个备份方案。另一个备份方案必须满足以下条件:

  • 使用相同的备份保险柜
  • 与 AlloyDB 集群位于同一区域

按照以下说明更改与 AlloyDB 集群关联的备份方案。

控制台

  1. 在 Google Cloud 控制台中,前往 Backup and DR Vaulted backups (受保管的备份)页面。

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

    Vaulted backups (受保管的备份)页面仅列出已应用备份方案且备份已存储在项目中的备份保险柜内的数据资源。

  2. 选择将获得不同方案的备份。从备份的备份 详情页面或 菜单中,选择 Change backup plan(更改备份方案)。Select a backup plan (选择备份方案)窗口仅列出对此集群有效的备份方案。

  3. 选择一个备份方案,然后点击 Apply (应用)。

gcloud

  • 更改分配的备份方案。

      gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \
      --workload-project=ALLOYDB_PROJECT_ID \
      --location=ALLOYDB_REGION \
      --backup-plan=BACKUP_PLAN \
      --project=PROJECT_ID
    

    替换以下内容:

    • BACKUP_PLAN_ASSOCIATION_NAME:备份方案关联资源的名称。
    • ALLOYDB_PROJECT_ID:AlloyDB 集群的项目 ID。
    • ALLOYDB_REGION:AlloyDB 集群的位置。
    • BACKUP_PLAN:您要切换到的备份方案的名称。
    • PROJECT_ID:所选备份方案的项目 ID。

取消保护 AlloyDB 集群

您可以通过移除应用于 AlloyDB 集群的备份方案来取消保护该集群。从 AlloyDB 集群中移除备份方案不会删除在使用备份方案期间创建的任何备份。您仍然可以访问和管理这些现有备份,直到它们过期。

如需取消保护 AlloyDB 集群,请按照以下说明操作。

控制台

  1. 在 Google Cloud 控制台中,前往 Backup and DR Vaulted backups (受保管的备份)页面。

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

  2. 点击要从中移除备份方案的数据库的名称。

  3. 选择 Remove backup plan (移除备份方案)。

gcloud

取消保护 AlloyDB 集群。

  gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
  --project=PROJECT_ID \
  --location=LOCATION

替换以下内容:

  • BACKUP_PLAN_ASSOCIATION_NAME:您要删除的备份方案关联的名称。
  • PROJECT_ID:项目的名称。
  • LOCATION:计划备份的位置。

加密 AlloyDB 集群备份

与其他一些工作负载不同,AlloyDB 集群备份使用 Backup and DR 备份保险柜密钥来加密备份,而不是源集群密钥。如需详细了解客户管理的 加密密钥,请参阅客户管理的加密密钥 (CMEK)。

增量备份和密钥轮替

由于备份本质上是增量的,因此如果密钥版本随时间轮替,则单个备份可以由保险柜密钥的多个 Cloud Key Management Service 密钥版本加密。

密钥跟踪

您可以参阅 Cloud Key Management Service 密钥跟踪页面,以监控和跟踪用于任何给定备份的 Cloud Key Management Service 密钥版本。

后续步骤