管理备份
本页介绍了如何执行 Bigtable 备份操作。在阅读本页内容之前,您应该先熟悉备份。
您可以通过以下命令使用 Bigtable 备份:
- Google Cloud 控制台。
- Google Cloud CLI。
- Cloud Bigtable 客户端库。
准备工作
确保您或您正在使用的用户账号拥有所需的操作权限。
如果您计划使用 gcloud CLI,请安装适用于 Bigtable 的 gcloud CLI。
使用自动备份
您可以使用 gcloud CLI 或 Google Cloud 控制台启用自动备份。自动备份功能会每天为您的表创建一个备份,默认保留期限为 7 天。如需修改表的自动备份政策中的保留期限,请参阅更新自动备份政策。
无论是手动创建的备份还是自动备份,删除、更新、复制和恢复备份的步骤都是一样的。
如果您的集群超出了 CPU 或存储空间利用率的建议限制,自动备份可能会受到影响,并且备份创建可能会延迟。如需了解详情,请参阅了解 CPU 和磁盘用量。
默认情况下,自动创建的备份会在三天后过期。您可以延长到期日期。如需了解详情,请参阅修改备份。
在预览期间,如果您打算启用自动备份功能,请考虑以下因素:
- 如果将集群添加到包含已启用自动备份的表的实例中,系统不会在添加的集群上创建每日备份。如需在所有集群(包括新添加的集群)上创建每日备份,请停用表的自动备份,然后重新启用自动备份。
- 如果已启用自动备份的表被删除,然后又取消删除,您需要对已恢复的表重新启用自动备份。
- 恢复表的自动备份不会自动为恢复的表启用自动备份。您需要手动启用自动备份。
启用自动备份
您可以使用控制台或 Google Cloud CLI 启用自动备份。启用自动备份后,Bigtable 每天都会在实例中的每个集群上为表创建标准备份。您无法使用自动备份功能创建热备份。
系统会为自动备份过程中创建的备份分配以 auto
开头的 ID。例如,ID 为 my-table
的表将具有类似 auto.my-table.c7x3.20230220-145537
的自动备份 ID,其中 my-table
是截断的表 ID,c7x3
是唯一的哈希 ID,20230220-145537
是世界协调时间格式的日期和时间。
如需创建启用了自动备份的新表,请参阅创建和管理表。
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含要备份的表的实例。
在左侧窗格中,点击表。
表页面显示实例中的表列表。
在表格的自动备份列中,点击启用。Bigtable 最长可能需要 1 小时才能开始创建备份。
如需为表启用自动备份,请运行 gcloud bigtable
tables update
命令。如需详细了解如何在创建表时启用自动备份,请参阅创建表。
为表启用自动备份政策后,更新后的配置最多可能需要 1 小时才会生效。
gcloud bigtable tables update TABLE_ID \
--instance=INSTANCE_ID \
--enable-automated-backup
替换以下内容:
- TABLE_ID:要备份的表的 ID。
- INSTANCE_ID:实例的永久性标识符。
可选:如需为表启用自动备份并设置与默认的 7 天不同的保留期限,请使用 --automated-backup-retention-period
标志,而不是 --enable-automated-backup
标志:
gcloud bigtable tables update TABLE_ID \
--instance=INSTANCE_ID \
--automated-backup-retention-period=RETENTION_PERIOD
将 RETENTION_PERIOD 替换为至少 3 天且不超过 90 天的值,以数字加上 m
、h
或 d
单位(分钟、小时或天)表示,例如 15d
(表示 15 天)。
停用自动备份
为表停用自动备份政策后,更新后的配置最多可能需要 1 小时才会生效。在政策更改生效之前创建的备份会保留到到期为止,除非您将其删除。
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含要为其停用自动备份的表的实例。
点击 Tables。
表页面显示实例中的表列表。
在要为其停用自动备份的表格行中,点击
Edit(修改)。取消选中启用自动备份复选框。
点击保存。
如需为表停用自动备份,请运行 gcloud bigtable
instances tables update
命令。
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--disable-automated-backup
替换以下内容:
- TABLE_ID:表的 ID。
- INSTANCE_ID:实例的永久性标识符。
查看自动备份政策
如需查看表的自动备份政策,请运行 gcloud bigtable
instances tables describe
命令。
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
替换以下内容:
- TABLE_ID:表的 ID。
- INSTANCE_ID:实例的永久性标识符。
输出类似于以下内容:
automatedBackupPolicy:
retentionPeriod: 3d
frequency: 24h
columnFamilies:
my-family: {}
createTime: '2023-02-07T20:10:55.613546Z'
granularity: MILLIS
name: projects/my-project/instances/my-instance/tables/my-table
updateTime: '2023-02-07T20:10:55.613546Z'
请注意以下几点:
- 如果未为表启用自动备份,则
automatedBackupPolicy
字段不存在。 retentionPeriod
表示自动创建的备份的保留期限。您可以将备份的保留期限修改为自备份创建之日起最长 90 天。如需更新备份保留期限,请参阅修改备份。
更新自动备份政策
对自动备份政策所做的更改会应用于更改后创建的备份。
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击包含您要更新自动备份政策的表所属的实例。
点击 Tables。
表页面显示实例中的表列表。
在要为其配置自动备份政策的表格行中,点击
Edit(修改)。系统会显示表格属性窗格。在配置自动备份下,在保留期限字段中,输入一个介于 3 到 90 之间的整数,以指定 Bigtable 应在保存更改后保留备份的天数。
点击保存。
如需修改表的自动备份政策,请将 gcloud bigtable
tables update
命令与 --automated-backup-retention-period
标志结合使用。
gcloud bigtable tables update TABLE_ID \
--instance=INSTANCE_ID \
--automated-backup-retention-period=retention-period=RETENTION_PERIOD
替换以下内容:
- TABLE_ID:启用了自动备份的表的 ID。
- INSTANCE_ID:实例的永久性标识符。
RETENTION_PERIOD:最长 90 天的期限,以数字加上
m
、h
或d
单位(分钟、小时或天)表示。示例:
72h
或89d
查看事件日志
启用自动备份后,Bigtable 会在创建备份时发出系统事件日志。如果备份创建延迟,它还会发出事件日志。
如需在控制台中的 Bigtable 集群概览页面上查看自动备份系统事件日志,请执行以下操作:
在 Google Cloud 控制台中打开 Bigtable 实例列表。
点击实例 ID。
点击集群 ID。
如果在过去一小时内创建了自动备份事件日志,这些日志会显示在日志窗格中。
可选:如需查看较早的事件日志,请点击 1 小时旁边的箭头,然后选择其他时间范围。
如需在 Logs Explorer 中查看自动备份系统事件日志,请按以下步骤操作:
导航到日志浏览器:
选择相应的 Google Cloud 项目。
如需查看备份创建事件,请在查询字段中输入以下内容:
resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com" resource.labels.method="CreateAutomatedBackup"
点击运行查询。
如需查看备份延迟事件,请在查询字段中输入以下内容:
resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com" resource.labels.method="DelayedAutomatedBackup"
点击运行查询。
查询结果包含类似于以下内容的消息:
Automated backup is delayed for table ab-test on cluster my-cluster-staging-c1.
创建标准备份
您可以使用 Google Cloud CLI、控制台或 Bigtable 客户端库之一创建表的标准备份。您还可以启用自动备份,让 Bigtable 每天为您创建标准备份。
转到 Google Cloud 控制台中的 Bigtable 实例页面。
点击包含要备份的表的实例。
在左侧导航窗格中,点击表。
点击要备份的表所对应的创建备份。
如果使用的是复制功能,请使用下拉菜单选择应存储备份的集群的集群 ID。(如果在表页面上点击了集群 ID(而非实例 ID)旁边的创建备份,则系统会预先选择相应集群。)
为备份输入唯一 ID。
设置到期日期。
点击创建。
此时,控制台会显示经过过滤的备份页面,以显示备份及其详细信息。
点击活动以查看备份的状态。
备份完成后,“状态”列会显示备份完成。
对于所有命令,请用实际值替换以下内容:
- INSTANCE_ID:实例的永久性标识符。
- CLUSTER_ID:集群的永久性标识符。
- TABLE_ID:要备份的表的 ID。
- BACKUP_ID:您分配给备份的 ID。
EXPIRATION_DATE:未来 90 天或更近的日期,格式为“祖鲁时”世界协调时间 (UTC) 时间戳,精确到纳秒。
示例:
2022-10-02T15:01:23.045123456Z
RETENTION_PERIOD:最长 90 天的期限,以数字加上
m
、h
或d
单位(分钟、小时或天)表示。示例:
36h
或89d
如果您不知道实例 ID,请使用
bigtable instances list
命令查看项目的实例列表:gcloud bigtable instances list
查看包含要备份的表的实例的备份列表,以便选择尚未在目标集群上使用的备份 ID。
gcloud bigtable backups list --instance=
INSTANCE_ID \ --cluster=CLUSTER_ID 查看表列表,确认要备份的表的 ID。
gcloud bigtable instances tables list --instances=
INSTANCE_ID 运行 gcloud bigtable instances backups create 命令,基于表创建备份,并提供失效日期或最长 90 天的保留期限。
gcloud bigtable backups create
BACKUP_ID --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ --table=TABLE_ID \ --async \ --expiration-date=EXPIRATION_DATE \ --retention-period=RETENTION_PERIOD --async
标志是可选的。如果希望终端在操作完成之前返回操作 ID,请使用此 ID。如果想要检查操作的状态,这将非常有用。查看备份列表,看看备份是否已创建。
gcloud bigtable backups list --instance=
INSTANCE_ID \ --cluster=CLUSTER_ID 如果备份未列出,请检查操作状态。
状态为
Ready
表示备份已完成。
创建热备份
对于所有命令,请用实际值替换以下内容:
- INSTANCE_ID:实例的永久性标识符。
- CLUSTER_ID:集群的永久性标识符。
- TABLE_ID:要备份的表的 ID。
- BACKUP_ID:您分配给备份的 ID。
EXPIRATION_DATE:未来 90 天或更近的日期,格式为“祖鲁时”世界协调时间 (UTC) 时间戳,精确到纳秒。
示例:
2022-10-02T15:01:23.045123456Z
RETENTION_PERIOD:最长 90 天的期限,以数字加上
m
、h
或d
单位(分钟、小时或天)表示。示例:
36h
或89d
HOT_TO_STANDARD_TIME:(可选)Bigtable 应将备份从热备份转换为标准备份的日期和时间。此值必须晚于备份创建时间至少 24 小时。
示例:
2024-08-02T15:01:23.045123456Z
或者,您也可以提供相对时长日期和时间。如需了解详情,请参阅 gcloud topic datetimes。
示例:
+P30D
(30 天)
如果您不知道实例 ID,请使用
bigtable instances list
命令查看项目的实例列表:gcloud bigtable instances list
查看包含要备份的表的实例的备份列表,以便选择尚未在目标集群上使用的备份 ID。
gcloud bigtable backups list --instance=
INSTANCE_ID \ --cluster=CLUSTER_ID 查看表列表,确认要备份的表的 ID。
gcloud bigtable instances tables list --instances=
INSTANCE_ID 运行 gcloud bigtable instances backups create 命令以创建表的热备份,并提供失效日期或最长 90 天的保留期限。
gcloud bigtable backups create
BACKUP_ID --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ --table=TABLE_ID \ --async \ --expiration-date=EXPIRATION_DATE \ --retention-period=RETENTION_PERIOD \ --backup-type=HOT \ --hot-to-standard-time=HOT_TO_STANDARD_TIME --async
标志是可选的。如果希望终端在操作完成之前返回操作 ID,请使用此 ID。如果想要检查操作的状态,这将非常有用。查看备份列表,看看备份是否已创建。
gcloud bigtable backups list --instance=
INSTANCE_ID \ --cluster=CLUSTER_ID 如果备份未列出,请检查操作状态。
状态为
Ready
表示备份已完成。
使用备份进行恢复
从备份恢复的新表不会启用自动备份,即使源表启用了自动备份也是如此。如果您希望对新表执行自动备份,则必须启用该功能。
无论是标准备份还是热备份,从备份恢复的步骤都是相同的。
您无法使用 Google Cloud 控制台将内容恢复到其他项目。如果需要这样做,请改用 gcloud CLI。
转到 Google Cloud 控制台中的 Bigtable 实例页面。
点击包含您要恢复的备份的实例。
在左侧导航窗格中,点击备份。
针对您要恢复的备份,点击恢复。
选择要恢复到的实例。
没有足够存储空间存放新表的实例不可用。如果您没有权限在某个实例中创建表,则该实例不可用。如需了解详情,请将鼠标悬停在
图标上。如果您从受 CMEK 保护的备份进行恢复,则目标实例也必须受 CMEK 保护。
您无法使用 Google Cloud 控制台恢复到其他项目。如果需要这样做,请改用 gcloud CLI。
为要从备份创建的表输入唯一 ID。 您以后无法更改此 ID。
点击恢复。
控制台会显示经过过滤的表页面以显示新表。
控制台显示每个集群的恢复状态。当所有集群的状态列显示就绪时,该表已恢复并复制到实例中的所有集群。
对于所有命令,请用实际值替换以下内容:
- PROJECT_ID_SOURCE:包含要从中恢复数据的备份的项目的 ID。
- INSTANCE_ID_SOURCE:源实例的永久 ID。
- PROJECT_ID_DESTINATION:要恢复到的项目的 ID。此标志是可选标志。如果您未指定此选项,则备份将恢复到创建它的同一实例中的新表。
- INSTANCE_ID_DESTINATION:目标实例的永久 ID。
- CLUSTER_ID:集群的永久性标识符。
- BACKUP_ID:您要从中恢复的备份的 ID。
- TABLE_ID_NEW:新表的 ID。
如果您不知道实例 ID,请使用
bigtable instances list
命令查看项目的实例列表:gcloud bigtable instances list
查看包含备份的实例的备份列表,以验证备份是否存在。
gcloud bigtable backups list --instance=
INSTANCE_ID_SOURCE \ --cluster=CLUSTER_ID_SOURCE 查看目标实例中表的列表,以便为尚未使用的新表选择 ID。
gcloud bigtable instances tables list --instances=
INSTANCE_ID_DESTINATION 运行 gcloud bigtable instances tables restore 命令,将内容从备份恢复到新表。
gcloud bigtable instances tables restore \ --source=projects/
PROJECT_ID_SOURCE /instances/INSTANCE_ID_SOURCE /clusters/CLUSTER_ID /backups/BACKUP_ID \ --async \ --destination=TABLE_ID_NEW \ --destination-instance=INSTANCE_ID_DESTINATION \ --project=PROJECT_ID_DESTINATION --async
标志是可选的。如果希望终端在操作完成之前返回操作 ID,请使用此 ID。如果想要检查操作的状态,这将非常有用。查看表列表,看看表是否已创建。
gcloud bigtable instances tables list --instances=
INSTANCE_ID_DESTINATION 如果备份未列出,请检查操作状态。
创建备份的副本
您无法使用控制台在其他项目中创建备份的副本。如果需要这样做,请改用 gcloud CLI。
转到 Google Cloud 控制台中的 Bigtable 实例页面。
点击包含您要复制的备份的实例。
在左侧导航窗格中,点击备份。
对要复制的备份,展开恢复旁边的“更多”菜单,然后点击复制。
对要创建其副本的备份,点击复制。
如果该备份本身已是另一个备份的副本,则复制操作不可用。
选择目标实例。
您无法使用控制台在其他项目中创建备份的副本。如果需要这样做,请改用 gcloud CLI。
没有足够存储空间来存放备份副本的实例不可用。如果您没有权限在某个实例中创建备份,该实例也将不可用。将鼠标指针悬停在
图标上可查看详细信息。如果您要创建受 CMEK 保护的备份的副本,则目标实例也必须受 CMEK 保护。
选择目标集群。
与任何备份一样,一个备份副本仅存储在实例中的一个集群上,即使该实例使用复制功能也是如此。
为要通过备份创建的副本输入一个唯一的 ID。您以后无法更改此 ID。
设置备份副本的到期时间,即提供一个时间值,并从下拉菜单中选择一个单位。
点击复制。
如需查看该副本,请点击查看副本。
控制台会显示目标实例经过过滤的备份页面,以显示刚刚创建的备份副本。如果状态列显示就绪,则表示副本已创建完成,可对其进行后续操作。
对于所有命令,请用实际值替换以下内容:
- PROJECT_ID_SOURCE:包含要复制的备份的项目。
- INSTANCE_ID_SOURCE:源实例的永久 ID。
- CLUSTER_ID_SOURCE:用来存储源备份的集群的 ID。
- BACKUP_ID_SOURCE:要复制的备份的 ID。
- PROJECT_ID_DESTINATION:要在其中存放副本的项目。
- INSTANCE_ID_DESTINATION:目标实例的永久 ID。
- CLUSTER_ID_DESTINATION:目标实例中要用来存储副本的集群的 ID。
- BACKUP_ID_DESTINATION:您分配给备份副本的 ID。
- RETENTION_PERIOD:备份副本的存留时间,以数字和单位(d 或 h)表示。例如,
5d
表示 5 天,15h
表示 15 小时。可以使用该属性,也可以使用到期日期属性。 - EXPIRATION_DATE:备份副本的到期日期和时间,格式为
2022-09-01T10:00:00.0Z
。
如果您不知道实例 ID,请使用
bigtable instances list
命令查看项目的实例列表:gcloud bigtable instances list
查看包含该备份的源实例的备份列表,以验证要复制的备份是否存在。
gcloud bigtable backups list --instance=
INSTANCE_ID_SOURCE \ --cluster=CLUSTER_ID_SOURCE 查看目标实例中备份的列表,以便为尚未使用的副本选择 ID。
gcloud bigtable backups list --instances=
DESTINATION_INSTANCE 运行 gcloud bigtable instances backups copy 命令以创建备份副本。
gcloud bigtable backups copy \ --source-project=
PROJECT_ID_SOURCE \ --source-instance=INSTANCE_ID_SOURCE \ --source-cluster=CLUSTER_ID_SOURCE \ --source-backup=BACKUP_ID_SOURCE \ --destination-project=PROJECT_ID_DESTINATION \ --destination-instance=INSTANCE_ID_DESTINATION \ --destination-cluster=CLUSTER_ID_DESTINATION \ --destination-backup=BACKUP_ID_DESTINATION \在该命令中附加以下内容之一:
--retention-period
`=RETENTION_PERIOD:备份副本的保留期限。必须在源备份创建之日起至少 6 小时,最多 30 天。--expiration-date
`=EXPIRATION_DATE:备份副本的到期时间。必须在源备份创建之日起至少 6 小时,最多 30 天。
您还可以选择在该命令中添加
--async
。如果您希望终端在操作完成之前返回操作 ID,则可以使用此标志。如果想要检查操作的状态,则此标志非常有用。如果返回超时消息,则表示备份可能已成功,并且可能已创建副本。
查看备份列表,看看该副本是否已创建。
gcloud bigtable backups list --instances=
INSTANCE_ID_DESTINATION 如果备份未列出,请检查操作状态。
在极少数情况下,创建备份副本的操作会因容量限制而失败,可使用其他目标集群进行重试。如果操作仍失败,请与支持团队联系。
检查操作的状态
转到 Google Cloud 控制台中的 Bigtable 实例页面。
点击包含备份的实例。
在左侧导航窗格中,点击备份。
在备份页面上,点击活动。状态列会显示每项操作的当前状态。
恢复表时的操作状态包括:
- 正在等待复制
- 正在恢复备份
- 正在初始化
- 优化就绪
- 准备就绪
创建备份时有如下操作状态:
- 正在创建备份
- 备份完成
复制备份时有如下操作状态:
- 正在复制备份
- 已复制备份
如需检查备份操作或恢复操作的状态,您需要该操作的唯一 ID。以下是操作 ID 的示例:
`instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635`
运行命令以使用 --async
选项创建备份或恢复到新表后,终端会显示操作 ID。
复制操作 ID。
运行 gcloud bigtable operations describe 命令,用复制的值替换
OPERATION_ID
。gcloud bigtable operations describe
OPERATION_ID 示例:
gcloud bigtable operations describe \ instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635
您可以每隔几分钟执行一次此命令,直到
DONE
的值为TRUE
。
如果不知道操作 ID,要么因为您不只是执行命令,要么您处于不同的终端窗口中,则可以查看实例的操作列表,并确定要检查的操作。
查看包含要备份或要恢复到的表的实例的最近操作活动列表,并将
INSTANCE_ID
替换为实例 ID:gcloud bigtable operations list --instance=
INSTANCE_ID 终端会在标记为
NAME
、START_TIME
、END_TIME
和DONE
的列中显示操作列表。NAME
列中的值是操作 ID。从列表中的第一项开始,复制操作 ID。
使用 gcloud bigtable operations describe 查看操作的元数据。
gcloud bigtable operations describe
OPERATION_ID 示例:
gcloud bigtable operations describe \ instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635
如果操作的元数据显示
backupInfo
的值,则您已找到正确的操作,并且可以随时重复此命令,直到DONE
的值为TRUE
。如果元数据未显示
backupInfo
的值,请检查第 1 步中显示的操作列表中的下一个操作。
修改备份或备份副本
无法通过 Google Cloud 控制台来修改备份,包括备份副本。
您可以使用 gcloud CLI 修改备份或备份副本的到期日期或存留期限。您还可以将热备份转换为标准备份。
对于所有命令,请用实际值替换以下内容:
- INSTANCE_ID:实例的永久性标识符。
- CLUSTER_ID:集群的永久性标识符。
- BACKUP_ID:备份的唯一 ID。
EXPIRATION_DATE:未来 90 天或更近的日期,格式为“祖鲁时”世界协调时间 (UTC) 时间戳,精确到纳秒。
示例:
2019-10-02T15:01:23.045123456Z
RETENTION_PERIOD:最长 90 天的期限,以数字加上
m
、h
或d
单位(分钟、小时或天)表示。示例:
36h
或89d
HOT_TO_STANDARD_TIME:(可选)Bigtable 应将备份从热备份转换为标准备份的日期和时间。此值必须晚于备份创建时间至少 24 小时。
示例:
2024-08-02T15:01:23.045123456Z
或者,您也可以提供相对时长日期和时间。如需了解详情,请参阅 gcloud topic datetimes。
示例:
+P30D
(30 天)
查看备份列表:
gcloud bigtable backups list --instance=
INSTANCE_ID 终端会显示备份列表。
记下需要更新的备份的备份和集群 ID。
运行 gcloud bigtable instances backups update 命令可添加新的到期日期或保留期限,或将热备份转换为标准备份。
gcloud bigtable backups update
BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ --expiration-date=EXPIRATION_DATE \ --retention-period=RETENTION_PERIOD --hot-to-standard-time=HOT_TO_STANDARD_TIME 运行 gcloud bigtable instances backups describe 命令,验证您是否已成功更新过期时间。
gcloud bigtable backups describe
BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID ```
删除备份
如果您想在创建备份副本后删除备份,请检查状态以验证复制操作是否已完成。
转到 Google Cloud 控制台中的 Bigtable 实例页面。
点击包含备份的实例。
在左侧导航窗格中,点击备份。
对于需要删除的备份,请展开恢复字样旁的“更多”菜单,然后点击删除。
在确认删除字段中输入备份 ID,然后点击删除。
查看备份列表,用实例的 ID 替换
INSTANCE_ID
:gcloud bigtable backups list --instance=
INSTANCE_ID 终端会显示备份列表。
记下备份 ID 及其所在集群的 ID。
运行 gcloud bigtable instances backups delete 命令,用记下的备份 ID 替换
BACKUP_ID
,用集群 ID 替换CLUSTER_ID
。gcloud bigtable backups delete
BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID