恢复 Spanner Omni 备份

您可以将 Spanner Omni 数据库的备份恢复到新数据库中。恢复的数据库具有原始数据库在备份 versionTime 的所有数据和架构信息,包括您使用 ALTER DATABASE SET OPTIONS 命令设置的所有数据库选项。

恢复的数据库中不包含以下内容:

  • IAM 权限。恢复完成后,您必须应用适当的 IAM 权限。

  • 任何变更数据流的内部数据。

  • 由行删除政策定义的存留时间 (TTL)。恢复完成后,您必须重新配置这些政策。

  • 预拆分数据库时创建的分块点。

恢复功能的运作方式

恢复 Spanner Omni 数据库时,您必须指定来源备份和新的目标数据库。您无法恢复到现有数据库。

恢复过程可实现高可用性。只有当目标实例中区域和可用区的多数仲裁处于可用状态时,您才能恢复数据库。

恢复状态

恢复的数据库会经历三个状态,并通过两个长时间运行的操作跟踪。

州 说明
CREATING Spanner Omni 通过创建新数据库并装载备份的文件来开始恢复。在此状态期间,恢复的数据库尚未可供使用。完成后,数据库即可供使用。

注意:Spanner Omni 不允许在恢复备份时删除备份。您可以在恢复完成且数据库进入 READY 状态后将其删除。
READY_OPTIMIZING 装载备份后,Spanner Omni 会开始将数据复制到新数据库,同时优化其存储大小。在此过程中,您的数据库已准备就绪,可供使用。

注意事项:
  • 读取延迟时间可能会略高。
  • 存储指标显示新数据库的大小,而不是备份的大小。在数据转移期间,结果可能无法反映所有数据的总大小。
  • 在此状态下,您无法删除已装载的备份。
READY 复制和优化操作完成后,数据库将转换为 READY 状态。数据库已完全恢复,不再需要备份。

如需在 CREATING 状态期间跟踪进度,您可以查询长时间运行的恢复操作,该操作会返回一个 RestoreDatabaseMetadata 对象。在 READY_OPTIMIZING 状态期间,操作会返回一个 OptimizeRestoredDatabaseMetadata 对象。

访问权限控制 (IAM)

以下角色提供 Spanner Omni 恢复操作所需的权限:

IAM 角色 权限
roles/spanner.restoreAdmin 从备份进行恢复的权限。
roles/spanner.admin 拥有对恢复操作和所有其他 Spanner Omni 资源的完整访问权限。
owner 拥有恢复操作的完整访问权限。
editor 拥有恢复操作的完整访问权限。
viewer 查看恢复操作的权限。无法创建、更新、删除或复制备份。

从备份中恢复数据库

如需恢复数据库,请使用 spanner databases restore 命令:

spanner databases restore \
  --destination-database=RESTORE_DATABASE_NAME \
  --source-backup=BACKUP_NAME \
  --async