本页介绍了 Spanner 恢复操作,并说明了如何恢复数据库。如需详细了解如何在 Spanner 中恢复数据库,请参阅恢复概览。
您可以使用以下方法恢复 Spanner 数据库:
准备工作
本页中的 gcloud CLI 示例进行如下假设:
- 您已设置 gcloud CLI 来搭配使用 Spanner。如果您刚开始通过以下服务使用 Google Cloud CLI Spanner,请参阅 Spanner 使用入门 使用 Google Cloud CLI。
您已经为项目配置了 Google Cloud CLI。例如:
gcloud config set core/project PROJECT_ID
您有一个名为
test-instance
的实例和一个名为example-db
的数据库。
-
如需获取从备份恢复数据库所需的权限, 请让管理员授予您 实例的 Cloud Spanner Restore Admin (
roles/spanner.restoreAdmin
) IAM 角色。
从备份中恢复数据库
控制台
转到 Google Cloud 控制台中的 Spanner 实例页面。
点击包含数据库的实例,打开其概览页面。
点击数据库打开其概览页面。
在导航窗格中,点击备份/恢复。
点击所选备份的操作按钮,然后选择恢复。
填写表单,然后点击恢复按钮。
如需查看操作进度,请查看进度指示器,如“操作”页面所示:
如果操作耗时过长,您可以取消操作。如需了解详情,请参阅取消长时间运行的实例操作。
gcloud
如需恢复数据库,请使用 gcloud spanner databases restore
:
gcloud spanner databases restore --async \
--destination-instance=test-instance --destination-database=example-db-restored \
--source-instance=test-instance --source-backup=example-db-backup-6 \
--encryption_type=google-managed-encryption
使用说明:
- 由于
--async
标志,该命令会立即返回。如果没有此标志,该命令将等待恢复操作完成。 - 如果来源实例和目标实例不同,则它们必须具有相同的实例配置。
- 如果目标数据库已存在,则操作将失败。
encryption_type
的可能值为USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
或CUSTOMER_MANAGED_ENCRYPTION
。如果您使用CUSTOMER_MANAGED_ENCRYPTION
,则必须指定kmsKeyName
。
客户端库
以下代码示例从给定备份恢复数据库,并等待
恢复操作(使用 RestoreDatabaseMetadata
的操作)
操作完成。恢复的数据库会在备份所在的实例中创建。完成后,该示例将检索并输出一些恢复信息
从数据库中提取数据
C++
C#
Go
Java
Node.js
PHP
Python
Ruby