本页介绍了如何创建 Spanner 数据库的备份。
如需详细了解备份,请参阅备份概览。 您可以通过以下方式备份数据库:
准备工作
-
如需获取创建备份所需的权限, 请让管理员授予您 实例上的以下 IAM 角色:
-
创建、查看、更新和删除备份:Cloud Spanner Backup Admin (
roles/spanner.backupAdmin
) -
创建和查看备份:
Cloud Spanner Backup Writer (
roles/spanner.backupWriter
)
-
创建、查看、更新和删除备份:Cloud Spanner Backup Admin (
此页面上的 gcloud CLI 示例做出了以下假设:
- 您已将 gcloud CLI 设置为与 Spanner。如果您是第一次将 gcloud CLI 与 Spanner 搭配使用,请参阅使用 gcloud CLI 创建和查询数据库。
您已为项目配置了 gcloud CLI。例如:
gcloud config set core/project PROJECT_ID
创建备份
创建备份时,Spanner 会创建 备份资源和长期运行的 备份操作,以便跟踪 备份的进度新创建的备份位于同一 实例、区域和项目作为其源数据库。
创建备份时,您必须指定以下信息:
- 源数据库 ID。
- 备份资源的名称。
- 失效日期(从创建备份起最长 1 年)。
(可选)您可以为源数据库指定 versionTime
,以便将数据库备份到更早的时间点。versionTime
字段通常用于同步多个数据库的备份,或使用时间点恢复 (PITR) 来恢复数据。如果未指定 versionTime
,则将其设置为备份的 createTime
。
您还可以使用备份时间表,按指定频率创建备份。 如需了解详情,请参阅 创建和管理备份时间表。
控制台
在 Google Cloud 控制台中,前往 Spanner 实例页面。
点击包含要备份的数据库的实例。
点击相应数据库。
在导航窗格中,点击备份/恢复。
在备份标签页中,点击创建备份。
填写表单,然后点击创建。
如需查看备份操作的进度,请参阅 检查操作进度。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- INSTANCE_ID:Spanner 实例 ID。
- DATABASE_ID:Spanner 数据库 ID。
- BACKUP_NAME:Spanner 备份名称。
-
RETENTION_PERIOD:创建的备份的保留期限。例如,如果您希望将保留期限设为
则可以使用
86400s
。 -
ENCRYPTION_TYPE:
创建的备份的加密类型。
有效值为
USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
或CUSTOMER_MANAGED_ENCRYPTION
。 如果您使用CUSTOMER_MANAGED_ENCRYPTION
,则必须指定kmsKeyName
。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud spanner backups create BACKUP_NAME\ --instance=INSTANCE_ID\ --database=DATABASE_ID\ --retention-period=RETENTION_PERIOD\ --encryption-type=ENCRYPTION_TYPE\ --async
Windows (PowerShell)
gcloud spanner backups create BACKUP_NAME` --instance=INSTANCE_ID` --database=DATABASE_ID` --retention-period=RETENTION_PERIOD` --encryption-type=ENCRYPTION_TYPE` --async
Windows (cmd.exe)
gcloud spanner backups create BACKUP_NAME^ --instance=INSTANCE_ID^ --database=DATABASE_ID^ --retention-period=RETENTION_PERIOD^ --encryption-type=ENCRYPTION_TYPE^ --async
您应该会收到类似如下所示的响应:
Create request issued for: BACKUP_NAME Check operation [projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME/operations/_auto_op_234567] for status.
以下是一些使用说明:
- 要设置备份的到期日期,请指定
--retention-period
或--expiration-date
标志。如需了解日期语法,请参阅gcloud topic datetimes
。 - 备份的名称在实例中必须是唯一的。
- 由于
--async
标志,该命令会立即返回。如果没有此标志,该命令将等待备份操作完成。 - 请指定
--help
标志以获取有关任何命令的帮助。
如需查看备份操作的进度,请参阅 检查操作进度。
客户端库
以下代码示例在特定的 version_time
中创建备份,并等待备份完成。完成后,它会验证备份是否
并检索其相关信息,如名称、大小和
创建时间。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby