您可以将 Spanner Omni 数据库的备份恢复到新数据库中。恢复的数据库包含备份 versionTime 时原始数据库中的所有数据和架构信息,包括您使用 ALTER DATABASE SET OPTIONS 命令设置的所有数据库选项。
恢复的数据库中不包含以下项:
IAM 权限。您必须在恢复完成后应用适当的 IAM 权限。
任何变更数据流的内部数据。
由行删除政策定义的存留时间 (TTL)。您必须在恢复完成后重新配置这些政策。
预拆分数据库时创建的分块点。
Spanner Omni 的预览版不支持备份或恢复。如需获取可让您创建备份和从 备份恢复的功能,请与 Google 联系,申请提前访问完整版 Spanner Omni。
恢复的工作原理
恢复 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