管理备份

本页介绍了如何在 Memorystore for Redis 集群中执行备份操作。借助备份,您可以将集群的数据恢复到某个时间点,也可以导出和分析这些数据。

准备工作

确保您或您正在使用的用户账号拥有所需的操作权限

Redis 管理员Redis 编辑者角色可以执行所有备份操作。Redis 查看者角色可以查看和导出备份。

启动按需备份

您可以使用 Google Cloud 控制台或 Google Cloud CLI 为 Memorystore for Redis 集群中的集群创建按需备份。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

    Memorystore for Redis Cluster

  2. 点击要备份的集群的 ID。

  3. 在侧边导航面板中,点击备份

  4. 点击创建备份

  5. 创建备份对话框中,执行以下操作:

    1. 可选。为备份提供名称。如果您未命名备份,则备份的名称将包含日期和时间戳。
    2. 点击创建备份

gcloud

gcloud redis clusters create-backup CLUSTER_ID \
--backup-id=BACKUP_ID \
--ttl=TTL_PERIOD \
--project=PROJECT_ID \
--region=REGION

替换以下内容:

  • CLUSTER_ID 是您要备份的集群的 ID。
  • BACKUP_ID 是备份的 ID,例如 december-2024-backup
  • TTL_PERIOD 指定备份的存留时间 (TTL)。备份在达到 TTL 限制后会自动删除。 设置为天数。例如 14d。最小值为 1 天。 如果未指定,则默认值为 100 年。
  • PROJECT_ID 是项目 ID。
  • REGION 是集群所在的区域(例如 us-east1)。

该命令会返回以下格式的操作名称:

projects/PROJECT_ID/locations/REGION/operations/operation-UID

您可以使用 gcloud redis operations describe 命令检查操作的状态:

gcloud redis operations describe projects/PROJECT_ID/locations/REGION/operations/operation-UID

您还可以使用 gcloud redis operations list 命令列出项目和区域中的所有操作。

配置自动备份时间表

您可以在创建集群时配置每日备份时间表,也可以在现有集群上启用每日备份时间表。

创建启用了自动备份时间表的集群

您可以在 Memorystore for Redis 集群中创建集群时,使用 Google Cloud 控制台或 Google Cloud CLI 设置每日备份时间表。

控制台

如需了解如何创建集群并自动为集群启用备份时间表,请参阅创建实例

gcloud

gcloud redis clusters create CLUSTER_ID \
--automated-backup-mode=ENABLED \
--automated-backup-start-time=START_TIME \
--automated-backup-ttl=RETENTION_POLICY

替换以下内容:

  • CLUSTER_ID 是您要创建的集群的 ID。
  • START_TIME A 用于指定何时开始备份。以 24 小时制指定时间,格式为 HH:00,时间为世界协调时间 (UTC)。例如 23:00
  • RETENTION_POLICY 用于指定保留每个备份的天数。 设置为天数,例如 7d。最长为 365 天,默认值为 35 天。

    即使集群被删除,备份也会在保留期限内保留,最长保留期限为 365 天。 您必须手动删除备份,才能在保留期限到期之前移除备份。

在现有集群上启用计划备份

您可以使用 Google Cloud 控制台或 Google Cloud CLI 在现有集群上启用每日备份计划。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

    Memorystore for Redis Cluster

  2. 点击要为其启用备份的集群的 ID。

  3. 在侧边导航面板中,点击备份

  4. 设置部分中,点击每日自动备份字段旁边的 修改

    相应字段的状态为已停用。如果此字段的状态为已启用,则表示您已为此集群启用计划备份。

  5. 自动备份设置对话框中,执行以下操作:

    1. 选中自动每日备份复选框。
    2. 保留备份的天数字段中,输入您希望 Memorystore for Redis Cluster 在自动删除备份之前保留备份的天数。您可以指定 1365 天。默认值为 35 天。
    3. 时间窗口菜单中,选择 Memorystore for Redis Cluster 进行每日备份的小时。
    4. 点击保存

gcloud

gcloud redis clusters update CLUSTER_ID \
--automated-backup-mode=enabled \
--automated-backup-start-time=START_TIME \
--automated-backup-ttl=RETENTION_POLICY

替换以下内容:

  • CLUSTER_ID 是您要更新的集群的 ID。
  • START_TIME 一个时间戳,用于指定开始备份的时间。 时间戳必须精确到小时级别,并指定备份开始时间所在的一小时时段,例如 2024-01-01T01:00:00Z

  • RETENTION_POLICY 用于指定保留每个备份的天数。 设置为天数,例如 7d

    即使在集群被删除后,备份也会在保留期限内保留。您必须手动删除备份,才能在保留期限到期之前移除备份。

停用计划备份

您可以使用Google Cloud 控制台或 Google Cloud CLI 停用集群上的定期备份。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

    Memorystore for Redis Cluster

  2. 点击要停用备份的集群的 ID。

  3. 在侧边导航面板中,点击备份

  4. 设置部分中,点击每日自动备份字段旁边的 修改

    此字段的状态为已启用。此字段默认处于启用状态。 如果此字段的状态为 Disabled,则表示您已为此集群停用定期备份。

  5. 自动备份设置对话框中,执行以下操作:

    1. 清除自动每日备份复选框。
    2. 点击保存

gcloud

gcloud redis clusters update CLUSTER_ID \
--automated-backup-mode=disabled

CLUSTER_ID 替换为您要更新的集群的 ID。

备份和更新集群操作之间的并发性

在以下情况下,对集群执行的更新操作和维护操作可能会取消正在进行的备份操作:

  • 如果正在进行更新集群的操作,Memorystore for Redis 集群会拒绝备份操作。
  • 在极少数情况下,维护和备份操作可能会同时进行,导致相应集群的备份操作被跳过。

列出和描述备份

以下各部分演示了如何查找有关可用备份的信息。

列出备份集合

备份集合包含您为集群创建的所有备份。您可以使用 Google Cloud 控制台或 Google Cloud CLI 查看备份集合的列表。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

    Memorystore for Redis Cluster

  2. 在侧边导航面板中,点击备份

gcloud

gcloud redis clusters backup-collections list \
--project=PROJECT_ID \
--region=REGION

替换以下内容:

  • REGION 是集群所在的区域(例如 us-east1)。
  • PROJECT_ID 是项目 ID。

该命令会返回类似于以下内容的备份集合列表:

BACKUP_COLLECTION_NAME                CLUSTER_NAME                                           CLUSTER_UID
6d9e1ff4-0f89-4c0a-a941-155dd4c3a213  projects/PROJECT_ID/locations/REGION/clusters/cluster1  6e539aed-ee7b-4eea-83ad-b4715b1ef160
dda2f551-b416-47ff-b1cf-684e00483dc9  projects/PROJECT_ID/locations/REGION/clusters/cluster2  57130520-636c-4ac7-ad7e-86f7cfb32838

列出备份集合的备份

您可以使用Google Cloud 控制台或 Google Cloud CLI 查看备份集合的备份列表。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

    Memorystore for Redis Cluster

  2. 在侧边导航面板中,点击备份

  3. 点击与备份集合关联的集群的 ID。 此备份集合包含您要查看的备份列表。

gcloud

gcloud redis clusters backups list \
--backup-collection=BACKUP_COLLECTION
--project=PROJECT_ID \
--region=REGION

替换以下内容:

  • BACKUP_COLLECTION 是备份集合的名称。
  • REGION 是集群所在的区域,例如 us-east1
  • PROJECT_ID 是项目 ID。

该命令会返回类似于以下内容的备份列表:

BACKUP_NAME  STATE   CREATE_TIME                     EXPIRE_TIME
backup-1     ACTIVE  2024-11-10T03:52:40.899882388Z  2124-11-10T03:53:02.856981736Z
backup-2     ACTIVE  2024-11-11T03:48:22.137134936Z  2124-11-11T03:48:44.130735425Z

描述备份

您可以使用 Google Cloud CLI 检索有关备份的信息。

gcloud

gcloud redis clusters backups describe BACKUP_NAME \
--backup-collections=BACKUP_COLLECTION
--project=PROJECT_ID \
--region=REGION

替换以下内容:

  • BACKUP_NAME 是备份的名称,例如 2024-05-01-10-15-00
  • BACKUP_COLLECTION 是备份集合的名称。
  • REGION 是集群所在的区域,例如 us-east1
  • PROJECT_ID 是项目 ID。

该命令会返回类似于以下内容的备份信息:

backupFiles:
- createTime: '2024-11-10T03:52:55.539Z'
fileName: 3d2774dab822137c5bac9386f3fa69ee4c73b928.rdb
sizeBytes: '694879680'
- createTime: '2024-11-10T03:52:54.742Z'
fileName: 7f5d99faaefc63ed8292a71da2552db3b06cdcff.rdb
sizeBytes: '694925906'
- createTime: '2024-11-10T03:52:54.972Z'
fileName: 0aac1092a3fb81515aefb6b2421f31eb346c3961.rdb
sizeBytes: '694784169'
cluster: projects/PROJECT_ID/locations/us-east1/clusters/cluster1
clusterUid: 57130520-636c-4ac7-ad7e-86f7cfb32838
createTime: '2024-11-10T03:52:40.899882388Z'
expireTime: '2124-11-10T03:53:02.856981736Z'
name: projects/PROJECT_ID/locations/us-east1/backupCollections/dda2f551-b416-47ff-b1cf-684e00483dc9/backups/december-2024-backup
nodeType: REDIS_HIGHMEM_MEDIUM
shardCount: 3
state: ACTIVE
totalSizeBytes: '2084589755'

删除备份

您可以使用 Google Cloud 控制台或 Google Cloud CLI 删除备份。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

    Memorystore for Redis Cluster

  2. 点击包含要删除的备份的集群的 ID。

  3. 在侧边导航面板中,点击备份

  4. 在要删除的备份旁边,点击 更多操作

  5. 从菜单中选择删除

  6. 删除备份?对话框中,执行以下操作:

    1. 在文本字段中,输入 delete
    2. 点击删除

gcloud

gcloud redis clusters backups delete BACKUP_NAME \
--backup-collection=BACKUP_COLLECTION
--project=PROJECT_ID \
--region=REGION

替换以下内容:

  • BACKUP_NAME 是备份的名称,例如 2024-05-01-10-15-00
  • BACKUP_COLLECTION 是备份集合的名称。
  • REGION 是集群所在的区域,例如 us-east1
  • PROJECT_ID 是项目 ID。

将备份导出到存储桶

您可以使用Google Cloud 控制台或 Google Cloud CLI 将备份导出到 Cloud Storage 存储桶。

如需导出备份,请执行以下操作:

  1. Memorystore for Redis Cluster 必须具有访问目标 Cloud Storage 存储桶的权限。向 Memorystore for Redis Cluster 服务代理授予对 Cloud Storage 资源的访问权限。

    Memorystore for Redis Cluster 服务代理使用以下命名格式:

    service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
    

    PROJECT_NUMBER 替换为集群或备份所在项目的项目编号

    向服务代理授予具有 storage.buckets.getstorage.objects.createstorage.objects.deletestorage.folders.create 权限的角色。例如,以下命令会向 Memorystore for Redis 集群服务代理授予指定存储桶的 Storage Admin 角色:

    gcloud

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \
    --role=roles/storage.admin
    

    替换以下内容:

    • BUCKET_NAME 是目标存储桶的名称。
    • PROJECT_NUMBER 是服务代理名称中使用的项目编号。
  2. 将备份导出到 Cloud Storage 存储桶。

    控制台

    1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

      Memorystore for Redis Cluster

    2. 点击包含要导出的备份的集群的 ID。

    3. 在侧边导航面板中,点击备份

    4. 在要导出的备份旁边,点击 更多操作

    5. 从菜单中选择导出

    6. 将备份导出到 Cloud Storage 页面的选择目标位置部分,点击浏览

    7. 选择存储桶对话框中,点击要将备份导出到的存储桶,然后点击选择

    8. 将备份导出到 Cloud Storage 页面中,点击导出

    gcloud

    gcloud redis clusters backups export BACKUP_NAME \
    --region=REGION \
    --backup-collection=BACKUP_COLLECTION \
    --gcs-bucket=BUCKET
    

    替换以下内容:

    • BACKUP_NAME 是 Memorystore for Redis 集群备份的名称。
    • BACKUP_COLLECTION 是备份集合的名称。
    • REGION 是备份集合所在的区域,例如 us-east1
    • BUCKET_NAME 是一个 Cloud Storage 存储桶,不以 gs:// 为前缀。

    存储桶必须是区域级存储桶,并且必须与备份位于同一区域。 Memorystore for Redis 集群必须有权访问相应存储桶,以及在存储分区内创建文件夹和对象。

通过备份恢复数据

如需从备份中恢复数据,您可以从同一项目中的托管式备份为新集群提供初始数据,也可以从存储桶中的 Redis 数据库 (RDB) 文件为新集群提供初始数据。如需通过 RDB 文件为集群提供初始数据,Memorystore for Redis Cluster 必须有权访问这些文件。

使用备份为新集群提供初始数据

以下示例演示了如何将数据从备份导入到新集群。备份必须与新集群位于同一区域。创建集群的主账号必须拥有备份的 redis.backups.get 权限。

您可以使用Google Cloud 控制台或 Google Cloud CLI 将数据从备份导入到新集群。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

    Memorystore for Redis Cluster

  2. 点击包含要导入的备份的集群的 ID。

  3. 在侧边导航面板中,点击备份

  4. 在要导入的备份旁边,点击 更多操作

  5. 从菜单中,选择导入到新集群。系统会显示创建 Redis 集群实例页面。

  6. 备份选项部分,验证以下内容:

    1. 已选择托管式备份选项。
    2. 备份 ID 字段包含您选择的备份的路径和名称。
  7. 为集群实例命名部分中,输入您要创建的集群的 ID。集群 ID 只能使用小写字母、数字和连字符。还必须以字母开头,并在其区域中是唯一的。

  8. 区域菜单中,为集群选择一个区域。

  9. 可用区级可用性部分中,指定您是要创建单可用区还是多可用区集群。

  10. 可选。在节点类型部分中,选择以下节点类型之一:

    • 共享核心 (redis-shared-core-nano)
    • (redis-standard-small)
    • 中等 (redis-highmem-medium)
    • 超大号 (redis-highmem-xlarge)
  11. 可选。在集群大小部分,输入集群的分片数量。分片数决定了用于存储集群数据的总内存容量。如需详细了解集群规范,请参阅集群和节点规范

  12. 可选。如果您想创建具有副本的集群,请在副本部分中选择副本数量(每个分片)。您可以选择 0-5 个副本。默认值为 1 个副本。

  13. 设置连接部分中,选择您的应用可用于连接到此集群的网络。如需详细了解 Memorystore for Redis Cluster 的专用网络,请参阅网络概览

  14. 可选。如果您想提高集群的安全性,请在安全性部分中,通过选中启用 IAM AUTH 复选框来启用 IAM 身份验证

  15. 数据持久化策略部分,指定您希望 Memorystore for Redis Cluster 如何持久化集群中的数据。可接受的值为无持久性仅附加文件 (AOF) 持久性Redis 数据库 (RDB) 持久性

  16. 可选。如果您想为集群启用自动备份,请执行以下操作:

    1. 选中自动每日备份复选框。
    2. 保留备份的天数字段中,输入您希望 Memorystore for Redis 集群在自动删除备份之前保留备份的天数。您可以指定 1365 天。默认值为 35 天。
    3. 时间窗口菜单中,选择每日备份的时间。
  17. 点击创建集群

gcloud

gcloud redis clusters create CLUSTER_ID \
--import-managed-backup=BACKUP_NAME \
--region=REGION

替换以下内容:

  • CLUSTER_ID 是您要创建的集群的 ID。
  • BACKUP_NAME 是受管理的备份的名称。例如 projects/PROJECT_ID/locations/REGION/backupCollections/BACKUP_COLLECTION_ID/backups/BACKUP_ID
  • REGION 是集群所在的区域,例如 us-east1

如需了解可用于创建集群的更多选项,请参阅创建实例

使用存储桶中的 RDB 文件为新集群设定初始状态

以下示例演示了如何将 Cloud Storage 存储桶中的 RDB 文件中的数据导入到新集群。存储桶必须是与新集群位于同一区域的单区域存储桶,或者是一个区域与新集群位于同一区域的双区域存储桶。

如需使用 Cloud Storage 存储桶中的 RDB 文件为集群提供初始数据,您必须向 Memorystore for Redis Cluster 授予对该存储桶和对象的访问权限,然后从这些文件中导入数据。

您可以使用 Google Cloud 控制台或 Google Cloud CLI 从 RDB 文件导入数据。

  1. Memorystore for Redis Cluster 必须具有访问 Cloud Storage 对象的权限。向 Memorystore for Redis Cluster 服务代理授予对 Cloud Storage 资源的访问权限。

    Memorystore for Redis Cluster 服务代理使用以下命名格式:

    service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com

    PROJECT_NUMBER 替换为要在其中创建新集群的项目的项目编号

    向服务代理授予具有 storage.buckets.getstorage.objects.get 权限的角色。例如,以下命令会向 Cloud Storage 存储桶授予 Storage Admin 角色:

    gcloud

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com --role=roles/storage.admin
    

    替换以下内容:

    • BUCKET_NAME 是 RDB 文件所在的存储桶的名称。
    • PROJECT_NUMBER 是服务代理名称中使用的项目编号。
  2. 将 Cloud Storage 存储桶中的 RDB 文件中的数据导入到新集群。

    控制台

    1. 在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。

      Memorystore for Redis Cluster

    2. 点击创建集群旁边的 下拉箭头,然后从显示的菜单中选择从备份创建。系统会显示创建 Redis 集群实例页面。

    3. 备份选项部分中,执行以下操作:

      1. 选择 Cloud Storage 文件夹选项。
      2. 在文本字段中,点击浏览
      3. 选择文件夹对话框中,选择包含要导入的 RDB 文件的文件夹。
      4. 点击选择
    4. 为集群实例命名部分,输入集群的 ID。集群 ID 只能使用小写字母、数字和连字符。还必须以字母开头,并在其区域中是唯一的。

    5. 区域菜单中,为集群选择一个区域。

    6. 可用区级可用性部分中,指定您是要创建单可用区还是多可用区集群。

    7. 节点类型部分中,选择以下节点类型之一:

      • 共享核心 (redis-shared-core-nano)
      • (redis-standard-small)
      • 中等 (redis-highmem-medium)
      • 超大号 (redis-highmem-xlarge)
    8. 集群大小部分,输入集群的分片数量。分片数决定了用于存储集群数据的总内存容量。如需详细了解集群规范,请参阅集群和节点规范

    9. 如果您想创建具有副本的集群,请在副本部分中选择副本数量(每个分片)。您可以选择 0-5 个副本。默认值为 1 个副本。

    10. 设置连接部分中,选择您的应用可用于连接到此集群的网络。如需详细了解 Memorystore for Redis Cluster 的专用网络,请参阅网络概览

    11. 可选。如果您想提高集群的安全性,请在安全性部分中,通过选中启用 IAM AUTH 复选框来启用 IAM 身份验证

    12. 数据持久化策略部分,指定您希望 Memorystore for Redis Cluster 如何持久化集群中的数据。可接受的值为无持久性仅附加文件 (AOF) 持久性Redis 数据库 (RDB) 持久性

    13. 可选。如果您想为集群启用自动备份,请执行以下操作:

      1. 选中自动每日备份复选框。
      2. 保留备份的天数字段中,输入您希望 Memorystore for Redis 集群在自动删除备份之前保留备份的天数。您可以指定 1365 天。默认值为 35 天。
      3. 时间窗口菜单中,选择每日备份的时间。
    14. 点击创建集群

    gcloud

    gcloud redis clusters create CLUSTER_ID \
    --import-gcs-object-uris=URI \
    --region=REGION
    

    替换以下内容:

    • CLUSTER_ID 是您要创建的集群的 ID。
    • URI 是一个或多个以英文逗号 (,) 分隔的 Cloud Storage URI。例如,gs://my-bucket/folder/file1.rdb,gs://my-bucket/folder/file2.rdb
    • REGION 是集群所在的区域,例如 us-east1

    如需了解可用于创建集群的更多选项,请参阅创建实例

Cloud Monitoring 指标

您可以使用 Cloud Monitoring 指标来监控近期的备份和导入操作。如需查看适用于 Memorystore for Redis Cluster 备份的指标列表,请参阅备份指标

后续步骤