您可以将 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
:有权查看恢复和恢复操作。此角色无法创建、更新、删除或复制备份。
价格
从备份进行恢复是免费的。
后续步骤
- 如需利用备份恢复数据库,请参阅 使用备份进行恢复。