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

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

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

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

开始前的准备工作

如果您尚未完成这些任务,必须为用户配置相应的权限,以还原 Amazon Keyspaces 表。InAmazon Identity and Access Management(IAM)、Amazon管理的策略AmazonKeyspacesFullAccess包含恢复 Amazon Keyspaces 表的权限。有关实施具有最低所需权限的策略的详细步骤,请参阅恢复表所需的权限 .

使表还原到某个时间点(控制台)

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

注意

此过程假定已启用时间点恢复。若要启用 PITRmytable表中,请按照使用控制台启用 PITR.

  1. 登录到Amazon Web Services Management Console,然后打开 Amazon Keyspaces 控制台,在https://console.aws.amazon.com/keyspaces/home.

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

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

  4. 在存储库的备份选项卡mytable表中的时间点恢复部分,选择。还原.

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

  6. 要定义还原操作的时间点,可在两个选项之间进行选择:

    • 选择预配置的最早时间。

    • Select指定日期和时间,然后输入要将新表还原到的日期和时间。

    注意

    您可以还原到任何时间点最早时间和当前时间。Amazon Keyspaces 将表数据还原到基于选定的日期和时间的状态(日:time: time: time: time: 秒)。

  7. 选择还原以开始还原过程。

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

    重要

    正在还原时,请勿修改或删除授予 IAM 实体(例如,用户、组或角色)执行还原的权限的 Amazon Identity and Access Management (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. 使表还原到某个时间点,由restore_timestamp使用 ISO 8601 格式。在这种情况下,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 (活动)

重要

正在还原时,请勿修改或删除授予 IAM 实体(例如,用户、组或角色)执行还原的权限的 Amazon Identity and Access Management (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;