使用时间点恢复 (PITR) 恢复数据

本页面介绍了对于 GoogleSQL 方言数据库和 PostgreSQL 方言数据库,如何使用时间点恢复 (PITR) 保留和恢复 Spanner 中的数据。

如需了解详情,请参阅时间点恢复

前提条件

本指南使用 Spanner 快速入门中定义的数据库和架构。您可以浏览快速入门以创建数据库和架构,也可以修改命令以配合您自己的数据库使用。

设置保留期限

如需设置数据库的保留期限,请执行以下操作:

控制台

  1. 前往Google Cloud 控制台中的“Spanner 实例”页面。

    转到“Spanner 实例”页面

  2. 点击包含数据库的实例,打开其概览页面。

  3. 点击数据库打开其概览页面。

  4. 选择备份/恢复标签页。

    控制台中的“备份/恢复”表单,其中显示了设置为 1 小时的“版本保留期限”字段和用于修改此值的铅笔图标。

  5. 点击版本保留期限字段中的铅笔图标。

  6. 输入保留期限的数量和时间单位,然后点击更新

gcloud

使用 ALTER DATABASE 语句更新数据库的架构。例如:

gcloud spanner databases ddl update example-db \
    --instance=test-instance \
    --ddl='ALTER DATABASE `example-db` \
    SET OPTIONS (version_retention_period="7d");'

如需查看保留期限,请获取数据库的 DDL:

gcloud spanner databases ddl describe example-db \
    --instance=test-instance

输出如下:

ALTER DATABASE example-db SET OPTIONS (
  version_retention_period = '7d'
);
...

客户端库

C#


using Google.Cloud.Spanner.Data;
using System.Threading.Tasks;

public class CreateDatabaseWithRetentionPeriodAsyncSample
{
    public async Task CreateDatabaseWithRetentionPeriodAsync(string projectId, string instanceId, string databaseId)
    {
        string connectionString = $"Data Source=projects/{projectId}/instances/{instanceId}";

        using var connection = new SpannerConnection(connectionString);
        var versionRetentionPeriod = "7d";
        var createStatement = $"CREATE DATABASE `{databaseId}`";
        var alterStatement = @$"ALTER DATABASE `{databaseId}` SET OPTIONS
                   (version_retention_period = '{versionRetentionPeriod}')";
        // The retention period cannot be set as part of the CREATE DATABASE statement,
        // but can be set using an ALTER DATABASE statement directly after database creation.
        using var createDbCommand