恢复概览

您可以将 Spanner 数据库的备份恢复到新数据库。恢复的数据库将在备份的 version_time 处包含原始数据库中的所有数据和架构,包括使用 ALTER DATABASE SET OPTIONS 命令设置的所有数据库选项。它不具有任何 IAM 权限(从包含已恢复数据库的实例继承的权限除外),并且您必须在恢复完成后应用适当的 IAM 权限。但不包含任何变更数据流的内部数据。使用备份进行恢复时,恢复的备份与其源备份位于同一实例、区域和项目中。如果出于合规性或业务连续性原因需要使用其他区域或项目中的备份进行恢复,可以将备份复制到其他区域或项目中的实例,然后从复制的备份进行恢复。

您可以通过以下方式使用备份进行恢复:

通过备份恢复数据库的工作原理

恢复 Spanner 数据库时,必须指定源备份和新的目标数据库。您无法恢复到现有数据库。 新恢复的数据库必须与备份位于同一项目中,并且位于与备份相同的实例配置的实例中。例如,如果备份位于配置为 us-west3 的实例中,则可以将其恢复到项目中也配置为 us-west3 的任何实例。实例的计算容量不必相同。

恢复过程专为实现高可用性而设计。如果实例中的区域和可用区的多数仲裁可用,则可以恢复数据库。

如需恢复启用了 CMEK 的备份,密钥和密钥版本必须对 Spanner 均可用。默认情况下,恢复的数据库使用与备份相同的加密配置。您可以通过在恢复数据库时指定不同的加密配置来替换此行为。如需了解详情,请参阅从启用 CMEK 的备份进行恢复

将备份恢复到其他区域或项目

如果您需要将备份恢复到其他区域或项目,请先将备份复制到所选区域或项目。复制完成后,就可以立即恢复已复制的备份。您可以在目标实例或与目标实例具有相同实例配置的任何实例中恢复备份。在恢复之前,请确保目标实例已预配足够的节点或处理单元来支持数据库大小(根据每个节点的存储空间上限 4 TB 限制,例如,您需要至少 2 个节点才能恢复 8 TB 的备份)。如果您已将备份复制到其他项目,并且想要在其中恢复备份,请确保目标项目具有恢复所需的足够节点配额。恢复复制的备份的方式与正常恢复相同。

恢复状态

恢复的数据库会在三种状态间转换,分别由两个长时间运行的操作跟踪。

  • CREATING:Spanner 通过创建新数据库并从备份装载文件来开始恢复。在此初始 CREATING 状态期间,恢复的数据库尚无法使用。此状态通常会在一小时内完成。CREATING 状态完成后,您的数据库就可以可供使用了。

    如需跟踪此状态的进度,您可以查询 Spanner 在此过程中提供的长时间运行的恢复操作。它会返回一个 RestoreDatabaseMetadata 对象。

    对于 CREATING 状态,请注意以下事项:

    • 如果您要恢复到其他实例,则恢复操作属于包含已恢复的数据库的实例,而不是包含备份的实例。
    • Spanner 不允许您在恢复备份时将其删除。您可以在恢复完成且数据库进入 READY 状态后将其删除。
    • 由于使用备份进行恢复,一个实例最多只能有 10 个处于 CREATING 状态的数据库。在恢复的 10 个数据库中的某个数据库转换为 READY_OPTIMIZINGREADY 状态之前,您将无法恢复该实例的其他备份。
  • READY_OPTIMIZING:Spanner 装载备份后,会开始将备份数据复制到新数据库,同时优化其存储大小。在此过程中,您的数据库已准备就绪,可供使用。对于小于 100TB 的数据库,恢复的这一阶段通常需要几个小时才能完成。

    虽然您可以在 READY_OPTIMIZING 期间照常使用数据库,但也要注意以下事项:

    • 读取延迟时间可能会略高。
    • 存储指标显示新数据库的大小,而不是备份的大小。因此,由于数据传输仍在进行,Spanner 存储指标显示的结果可能不会反映所有数据的总大小。
    • CREATING 状态一样,Spanner 不允许删除已装载的备份。

    Spanner 会在此状态下提供另一个长时间运行的恢复操作,这次返回一个 OptimizeRestoredDatabaseMetadata 元数据对象。

  • READY:复制和优化操作完成后,数据库将转换为 READY 状态。数据库将完全恢复,不会再引用或不需要备份。

访问控制 (IAM)

spanner.restoreAdmin 角色可为您提供使用备份进行恢复的权限。如需了解详情,请参阅使用 IAM 进行访问权限控制

以下角色也有权访问 Spanner 恢复操作:

  • spanner.admin:拥有恢复的完整访问权限。此角色拥有对所有 Spanner 资源的完整访问权限。
  • owner:拥有恢复的完整访问权限。
  • editor:拥有恢复的完整访问权限。
  • viewer:有权查看恢复和恢复操作。此角色无法创建、更新、删除或复制备份。

价格

从备份进行恢复是免费的。

后续步骤