您可以将 Spanner 数据库的备份恢复到新数据库中。恢复的数据库将具有原始数据库在备份 version_time
的所有数据和架构,包括使用 ALTER DATABASE SET OPTIONS
命令设置的所有数据库选项。但是,恢复的数据库中不包含以下内容:
- IAM 权限(从包含已恢复数据库的实例继承的权限除外)。您必须在恢复完成后应用适当的 IAM 权限。
- 任何变更数据流的内部数据。
- 由行删除政策定义的存留时间 (TTL)。恢复完成后,您必须重新配置这些政策。如需了解详情,请参阅备份和 TTL。
- 预拆分数据库时创建的分块点。如需了解详情,请参阅预拆分概览。
从备份恢复时,恢复的数据库与其源备份位于同一实例、区域和项目中。如果出于合规性或业务连续性方面的考虑,您需要从其他区域或项目中的备份进行恢复,则可以将备份复制到其他区域或项目中的实例,然后从复制的备份进行恢复。
您可以通过以下方式从备份进行恢复:
- 在Google Cloud 控制台中
- 使用 Google Cloud CLI
- 使用客户端库
- 使用 REST 或 RPC API
从备份恢复数据库的工作原理
恢复 Spanner 数据库时,您必须指定来源备份和新的目标数据库。您无法恢复到现有数据库。
新恢复的数据库必须与备份位于同一项目中,并且位于与备份具有相同实例配置和相同(或更高层级)Spanner 版本的实例中。例如,如果备份位于配置了 us-west3
且使用企业版的实例中,则可以将其恢复到项目中也配置了 us-west3
且使用企业版的任何实例。如果您将企业版实例中的备份恢复到标准版实例中,并且数据库使用企业版功能,则恢复可能会失败。实例的计算容量不必相同。
恢复过程旨在实现高可用性。如果实例中的大部分区域和可用区都可用,则可以恢复数据库。
如需恢复启用了 CMEK 的备份,密钥和密钥版本都必须可用于 Cloud Spanner。默认情况下,恢复的数据库使用与备份相同的加密配置。您可以通过在恢复数据库时指定不同的加密配置来替换此行为。如需了解详情,请参阅从启用 CMEK 的备份进行恢复。
将备份恢复到其他区域或项目
如果您需要将备份恢复到其他区域或项目,请先将备份复制到所选区域或项目。复制的备份在复制完成后即可恢复。您可以将备份恢复到目标实例(只要该实例使用的版本与源备份实例相同),也可以恢复到与目标实例具有相同实例配置和相同(或更高层级)版本的任何实例。在恢复之前,请确保目标实例已预配足够的节点或处理单元,以根据每个节点 10 TB 的存储空间限制来支持数据库大小(也就是说,您需要至少 2 个节点来恢复 20 TB 的备份)。如果您已将备份复制到其他项目,并且想要在该项目中恢复备份,请确保目标项目具有恢复所需的足够节点配额。恢复复制的备份与正常恢复的运作方式相同。
恢复状态
恢复的数据库会经历三个状态,并通过两个长时间运行的操作跟踪。
CREATING
:Spanner 通过创建新数据库并从备份装载文件来开始恢复。在此初始CREATING
状态期间,恢复的数据库尚未可供使用。此状态通常会在 1 小时内完成。CREATING
状态完成后,数据库即可供使用。如需跟踪此状态的进度,您可以查询 Spanner 在此过程中提供的长时间运行的恢复操作。它会返回一个
RestoreDatabaseMetadata
对象。请注意有关
CREATING
状态的以下注意事项:- 如果要恢复到其他实例,则恢复操作属于包含已恢复数据库的实例,而不是属于包含备份的实例。
- Spanner 不允许在恢复备份时删除备份。您可以在恢复完成且数据库进入
READY
状态后将其删除。 - 由于从备份恢复,一个实例最多可以有 10 个处于
CREATING
状态的数据库。在 10 个恢复的数据库之一转换为READY_OPTIMIZING
或READY
状态之前,您将无法将另一个备份恢复到实例。
READY_OPTIMIZING
:Spanner 装载备份后,会开始将备份数据复制到新数据库,同时优化其存储大小。在此过程中,您的数据库已准备就绪,可供使用。对于大小小于 100 TB 的数据库,此恢复阶段通常需要几个小时才能完成。虽然您可以在
READY_OPTIMIZING
期间照常使用数据库,但请注意以下事项:- 读取延迟时间可能会略高。
- 存储指标显示新数据库的大小,而不是备份的大小。因此,数据传输仍在进行时,Spanner 存储指标可能会显示不能反映所有数据总大小的结果。
- 与
CREATING
状态一样,Spanner 不允许您删除已装载的备份。
在此状态期间,Spanner 会提供另一个长时间运行的恢复操作,这次会返回
OptimizeRestoredDatabaseMetadata
元数据对象。READY
:复制和优化操作完成后,数据库会转换为READY
状态。数据库已完全恢复,不再引用或需要备份。
访问权限控制 (IAM)
spanner.restoreAdmin
角色可授予您从备份进行恢复的权限。如需了解详情,请参阅使用 IAM 进行访问权限控制。
以下角色也有权访问 Spanner 恢复操作:
spanner.admin
:拥有对恢复的完全访问权限。此角色拥有对所有 Cloud Spanner 资源的完整访问权限。owner
:拥有对恢复的完全访问权限。editor
:拥有对恢复的完全访问权限。viewer
:有权查看恢复和恢复操作。此角色无法创建、更新、删除或复制备份。
价格
从备份进行恢复是免费的。
后续步骤
- 如需从备份恢复数据库,请参阅从备份进行恢复。