您可以将 Spanner 数据库的备份恢复到新的数据库。恢复的数据库将具有备份 version_time
中原始数据库的所有数据和架构,包括使用 ALTER DATABASE SET OPTIONS
命令设置的所有数据库选项。它没有任何 IAM 权限(从包含已恢复数据库的实例继承的 IAM 权限除外),并且您必须在恢复完成后应用适当的 IAM 权限。其中不会包含任何变更数据流的内部数据。从备份恢复时,恢复的备份会位于与其源备份相同的实例、区域和项目中。如果您出于合规性或业务连续性原因需要从其他区域或项目中的备份进行恢复,可以将备份复制到其他区域或项目中的实例,然后从复制的备份进行恢复。
您可以通过以下方式使用“从备份恢复”功能:
- 在 Google Cloud 控制台中
- 使用 Google Cloud CLI
- 使用客户端库
- 使用 REST 或 RPC API
从备份恢复数据库的工作原理
恢复 Spanner 数据库时,您必须指定来源备份和新的目标数据库。您无法恢复到现有数据库。新恢复的数据库必须与备份位于同一项目中,并且位于与备份具有相同实例配置和相同(或更高级别)Spanner 版本的实例中。例如,如果备份位于配置为 us-west3
且使用企业版的实例中,则可以将其恢复到项目中也配置为 us-west3
且使用企业版的任何实例。如果您将企业版实例中的备份恢复到标准版实例,如果数据库使用企业版功能,恢复操作可能会失败。实例的计算容量不必相同。
恢复过程旨在实现高可用性。如果实例中的大部分区域和可用区都可用,则可以恢复数据库。
如需恢复启用 CMEK 的备份,密钥和密钥版本必须可用于 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
:拥有对恢复的完全访问权限。此角色拥有对所有 Spanner 资源的完整访问权限。owner
:拥有对恢复的完全访问权限。editor
:拥有对恢复的完全访问权限。viewer
:有权查看恢复和恢复操作。此角色无法创建、更新、删除或复制备份。
价格
从备份进行恢复是免费的。
后续步骤
- 如需从备份恢复数据库,请参阅使用备份进行恢复。