将 Amazon Keyspaces 表还原到某个时间点 - Amazon Keyspaces(针对 Apache Cassandra)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Amazon Keyspaces 表还原到某个时间点

Amazon Keyspaces(对于 Apache Cassandra)时间点恢复 (PITR) 提供 Amazon Keyspaces 表数据的连续备份。本教程介绍如何使用 Amazon Keyspaces 控制台或 Cassandra 查询语言 (CQL) 将表还原到某个时间点,以及如何使用 CQL 还原已删除的表。

将表还原到Point时间点(控制台)

以下示例演示如何使用 Amazon Keyspaces 控制台将名为 的现有表还原mytable到某个时间点。

注意

此过程假定您已启用时间点恢复。要为mytable表启用 PITR,请按照中的步骤操作使用 AWS 管理控制台启用 PITR

  1. 登录 AWS 管理控制台,并通过以下网址打开 Amazon Keyspaces (for Apache Cassandra) 控制台https://console.aws.amazon.com/keyspaces/home.

  2. 在控制台左侧的导航窗格中,选择 Tables (表)

  3. 在表的列表中,选择 mytable 表。

  4. 表的 Backupsmytable (备份) 选项卡上,在 Point-in-time recovery (时间点恢复) 部分中,选择 Restore (还原)。

  5. 对于新表名称,输入 mytable_restored

  6. 要定义还原操作的时间点,您可以选择两个选项:

    • 选择预配置的 Earliest time (最早时间)。

    • 选择 Specify date and time (指定日期和时间),然后输入您要将新表还原到的日期和时间。

    注意

    您可以还原到最早时间和当前时间中的任何时间点。Amazon Keyspaces 根据选定的日期和时间 (day:hour:minute:second) 将您的表数据还原到 状态。

  7. 选择 Restore (还原) 以启动还原过程。

    正在还原的表显示状态为 Restoring (正在还原)。还原过程完成后,mytable_restored 表的状态更改为 Active (活动)

    重要

    正在进行还原时,请勿修改或删除 AWS AWS Identity and Access Management (IAM) 策略,该策略向 IAM 实体(例如,用户、组或角色)授予执行还原的权限。否则,可能会出现意外行为。例如,假设您在还原表时删除了对该表的写入权限。在这种情况下,底层 RestoreTableToPointInTime 操作无法将任何还原的数据写入 表。

    您只能在还原操作完成之后修改或删除权限。

使用 CQL 将表还原到某个时间点

以下过程演示如何使用 CQL 将名为 的现有表还原mytable到某个时间点。

注意

此过程假定您已启用时间点恢复。要在表上启用 PITR,请按照中的步骤操作以编程方式启用 PITR

  1. 您可以将活动表还原到介于 earliest_restorable_timestamp 和当前时间之间的某个时间点。当前时间是默认值。

    要确认已为mytable表启用时间点恢复,请查询 system_schema_mcs.tables ,如下所示。

    SELECT custom_properties FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

    启用了时间点恢复,如以下示例输出所示。

    custom_properties ----------------- { ..., "point_in_time_recovery": { "earliest_restorable_timestamp":"2020-06-30T19:19:21.175Z" "status":"enabled" } }
  2. 使表还原到某个时间点。在这种情况下,mytable表将还原到当前时间。您可以省略 WITH restore_timestamp = ... 子句。如果没有 子句,则使用当前时间戳。

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable;

    您还可以还原到特定时间点。您可以指定最近 35 天内的任何时间点。例如,以下命令使表还原到 EarliestRestorableDateTime

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable WITH restore_timestamp = '2020-06-30T19:19:21.175Z';

    有关完整语法描述,请参阅语言参考还原表中的 。

要验证表的还原是否成功,请查询 system_schema_mcs.tables 以确认表的状态。

SELECT status FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable_restored'

查询显示以下输出。

status ------ RESTORING

正在还原的表显示状态为 Restoring (正在还原)。还原过程完成后,mytable_restored 表的状态更改为 Active (活动)

重要

正在进行还原时,请勿修改或删除 AWS AWS Identity and Access Management (IAM) 策略,该策略向 IAM 实体(例如,用户、组或角色)授予执行还原的权限。否则,可能会出现意外行为。例如,假设您在还原表时删除了对该表的写入权限。在这种情况下,底层 RestoreTableToPointInTime 操作无法将任何还原的数据写入 表。

您只能在还原操作完成之后修改或删除权限。

使用 CQL 还原已删除的表

以下过程演示如何使用 CQL 将名为 的已删除表还原mytable到删除时间。

注意

此过程假定已对已删除的表启用 PITR。

  1. 要确认为已删除的表启用了时间点恢复,请查询 系统表。仅显示启用了时间点恢复的表。

    SELECT custom_properties FROM system_schema_mcs.tables_history WHERE keyspace_name = 'mykeyspace' AND table_name = 'my_table;

    查询显示以下输出。

    custom_properties ------------------ { ..., "point_in_time_recovery":{ "restorable_until_time":"2020-08-04T00:48:58.381Z", "status":"enabled" } }
  2. 使用以下示例语句将表还原到删除时间。

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable;