本页介绍了如何在 Memorystore for Redis 集群中执行备份操作。借助备份,您可以将集群的数据恢复到某个时间点,也可以导出和分析这些数据。
准备工作
确保您或您正在使用的用户账号拥有所需的操作权限。
Redis 管理员和 Redis 编辑者角色可以执行所有备份操作。Redis 查看者角色可以查看和导出备份。
启动按需备份
您可以使用 Google Cloud 控制台或 Google Cloud CLI 为 Memorystore for Redis 集群中的集群创建按需备份。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
点击要备份的集群的 ID。
在侧边导航面板中,点击备份。
点击创建备份。
在创建备份对话框中,执行以下操作:
- 可选。为备份提供名称。如果您未命名备份,则备份的名称将包含日期和时间戳。
- 点击创建备份。
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 在现有集群上启用每日备份计划。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
点击要为其启用备份的集群的 ID。
在侧边导航面板中,点击备份。
在设置部分中,点击每日自动备份字段旁边的 edit 修改。
相应字段的状态为已停用。如果此字段的状态为已启用,则表示您已为此集群启用计划备份。
在自动备份设置对话框中,执行以下操作:
- 选中自动每日备份复选框。
- 在保留备份的天数字段中,输入您希望 Memorystore for Redis Cluster 在自动删除备份之前保留备份的天数。您可以指定
1到365天。默认值为35天。 - 从时间窗口菜单中,选择 Memorystore for Redis Cluster 进行每日备份的小时。
- 点击保存。
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 停用集群上的定期备份。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
点击要停用备份的集群的 ID。
在侧边导航面板中,点击备份。
在设置部分中,点击每日自动备份字段旁边的 edit 修改。
此字段的状态为已启用。此字段默认处于启用状态。 如果此字段的状态为 Disabled,则表示您已为此集群停用定期备份。
在自动备份设置对话框中,执行以下操作:
- 清除自动每日备份复选框。
- 点击保存。
gcloud
gcloud redis clusters update CLUSTER_ID \ --automated-backup-mode=disabled
将 CLUSTER_ID 替换为您要更新的集群的 ID。
备份和更新集群操作之间的并发性
在以下情况下,对集群执行的更新操作和维护操作可能会取消正在进行的备份操作:
- 如果正在进行更新集群的操作,Memorystore for Redis 集群会拒绝备份操作。
- 在极少数情况下,维护和备份操作可能会同时进行,导致相应集群的备份操作被跳过。
列出和描述备份
以下各部分演示了如何查找有关可用备份的信息。
列出备份集合
备份集合包含您为集群创建的所有备份。您可以使用 Google Cloud 控制台或 Google Cloud CLI 查看备份集合的列表。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
在侧边导航面板中,点击备份。
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 查看备份集合的备份列表。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
在侧边导航面板中,点击备份。
点击与备份集合关联的集群的 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 删除备份。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
点击包含要删除的备份的集群的 ID。
在侧边导航面板中,点击备份。
在要删除的备份旁边,点击 more_vert 更多操作。
从菜单中选择删除。
在删除备份?对话框中,执行以下操作:
- 在文本字段中,输入
delete。 - 点击删除。
- 在文本字段中,输入
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 存储桶。
如需导出备份,请执行以下操作:
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.get、storage.objects.create、storage.objects.delete和storage.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 是服务代理名称中使用的项目编号。
将备份导出到 Cloud Storage 存储桶。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
点击包含要导出的备份的集群的 ID。
在侧边导航面板中,点击备份。
在要导出的备份旁边,点击 more_vert 更多操作。
从菜单中选择导出。
在将备份导出到 Cloud Storage 页面的选择目标位置部分,点击浏览。
在选择存储桶对话框中,点击要将备份导出到的存储桶,然后点击选择。
在将备份导出到 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 将数据从备份导入到新集群。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
点击包含要导入的备份的集群的 ID。
在侧边导航面板中,点击备份。
在要导入的备份旁边,点击 more_vert 更多操作。
从菜单中,选择导入到新集群。系统会显示创建 Redis 集群实例页面。
在备份选项部分,验证以下内容:
- 已选择托管式备份选项。
- 备份 ID 字段包含您选择的备份的路径和名称。
在为集群实例命名部分中,输入您要创建的集群的 ID。集群 ID 只能使用小写字母、数字和连字符。还必须以字母开头,并在其区域中是唯一的。
从区域菜单中,为集群选择一个区域。
在可用区级可用性部分中,指定您是要创建单可用区还是多可用区集群。
可选。在节点类型部分中,选择以下节点类型之一:
- 共享核心 (
redis-shared-core-nano) - 小 (
redis-standard-small) - 中等 (
redis-highmem-medium) - 超大号 (
redis-highmem-xlarge)
- 共享核心 (
可选。在集群大小部分,输入集群的分片数量。分片数决定了用于存储集群数据的总内存容量。如需详细了解集群规范,请参阅集群和节点规范。
可选。如果您想创建具有副本的集群,请在副本部分中选择副本数量(每个分片)。您可以选择 0-5 个副本。默认值为 1 个副本。
在设置连接部分中,选择您的应用可用于连接到此集群的网络。如需详细了解 Memorystore for Redis Cluster 的专用网络,请参阅网络概览。
可选。如果您想提高集群的安全性,请在安全性部分中,通过选中启用 IAM AUTH 复选框来启用 IAM 身份验证。
在数据持久化策略部分,指定您希望 Memorystore for Redis Cluster 如何持久化集群中的数据。可接受的值为无持久性、仅附加文件 (AOF) 持久性和 Redis 数据库 (RDB) 持久性。
可选。如果您想为集群启用自动备份,请执行以下操作:
- 选中自动每日备份复选框。
- 在保留备份的天数字段中,输入您希望 Memorystore for Redis 集群在自动删除备份之前保留备份的天数。您可以指定
1到365天。默认值为35天。 - 从时间窗口菜单中,选择每日备份的时间。
点击创建集群。
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 文件导入数据。
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.get和storage.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 是服务代理名称中使用的项目编号。
将 Cloud Storage 存储桶中的 RDB 文件中的数据导入到新集群。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Redis 集群页面。
点击创建集群旁边的 arrow_drop_down 下拉箭头,然后从显示的菜单中选择从备份创建。系统会显示创建 Redis 集群实例页面。
在备份选项部分中,执行以下操作:
- 选择 Cloud Storage 文件夹选项。
- 在文本字段中,点击浏览。
- 在选择文件夹对话框中,选择包含要导入的 RDB 文件的文件夹。
- 点击选择。
在为集群实例命名部分,输入集群的 ID。集群 ID 只能使用小写字母、数字和连字符。还必须以字母开头,并在其区域中是唯一的。
从区域菜单中,为集群选择一个区域。
在可用区级可用性部分中,指定您是要创建单可用区还是多可用区集群。
在节点类型部分中,选择以下节点类型之一:
- 共享核心 (
redis-shared-core-nano) - 小 (
redis-standard-small) - 中等 (
redis-highmem-medium) - 超大号 (
redis-highmem-xlarge)
- 共享核心 (
在集群大小部分,输入集群的分片数量。分片数决定了用于存储集群数据的总内存容量。如需详细了解集群规范,请参阅集群和节点规范。
如果您想创建具有副本的集群,请在副本部分中选择副本数量(每个分片)。您可以选择 0-5 个副本。默认值为 1 个副本。
在设置连接部分中,选择您的应用可用于连接到此集群的网络。如需详细了解 Memorystore for Redis Cluster 的专用网络,请参阅网络概览。
可选。如果您想提高集群的安全性,请在安全性部分中,通过选中启用 IAM AUTH 复选框来启用 IAM 身份验证。
在数据持久化策略部分,指定您希望 Memorystore for Redis Cluster 如何持久化集群中的数据。可接受的值为无持久性、仅附加文件 (AOF) 持久性和 Redis 数据库 (RDB) 持久性。
可选。如果您想为集群启用自动备份,请执行以下操作:
- 选中自动每日备份复选框。
- 在保留备份的天数字段中,输入您希望 Memorystore for Redis 集群在自动删除备份之前保留备份的天数。您可以指定
1到365天。默认值为35天。 - 从时间窗口菜单中,选择每日备份的时间。
点击创建集群。
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 备份的指标列表,请参阅备份指标。