本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将表从备份中恢复到 Amazon Keyspaces 中的指定时间点
以下部分演示如何将现有 Amazon Keyspaces 表恢复到指定的时间点。
注意
此过程假设您正在使用的表已配置为 point-in-time 恢复功能。要PITR为表启用,请参阅在 Amazon Keyspaces 中PITR为表进行配置。
重要
在恢复过程中,请勿修改或删除 AWS Identity and Access Management (IAM) 授予IAM委托人(例如用户、组或角色)执行还原的权限的策略。否则,可能会出现意外行为。例如,如果您在恢复表时删除了该表的写入权限,则基础RestoreTableToPointInTime
操作无法将任何已恢复的数据写入该表。
只有在还原操作完成后,您才能修改或删除权限。
- Console
-
使用控制台将表恢复到指定时间点
登录 AWS Management Console,然后在家中打开 Amazon Keyspaces 控制台。https://console.aws.amazon.com/keyspaces/
-
在控制台左侧的导航窗格中,选择表。
-
在表列表中,选择要恢复的表。
-
在该表的备份选项卡上的 P oint-in-time 恢复部分,选择恢复。
-
例如,在新的表名中,为已恢复的表输入一个新名称
mytable_restored
。 -
要定义还原操作的时间点,可以在两个选项之间进行选择:
选择预配置的最早时间。
选择指定日期和时间并输入要将新表还原到的日期和时间。
注意
您可以还原到最早时间和当前时间之间的任何时间点。Amazon Keyspaces 会根据所选日期和时间 (day:hour:minute:second) 将表数据还原到相应状态。
选择还原,启动还原过程。
正在还原的表显示状态为 Restoring (正在还原)。恢复过程完成后,已还原表的状态将更改为 “活动”。
- Cassandra Query Language (CQL)
-
使用将表还原到某个时间点 CQL
-
您可以将活动表恢复到介于当前时间 point-in-time
earliest_restorable_timestamp
之间。默认值为当前时间。要确认该表已启用 point-in-time 恢复,请查询,
system_schema_mcs.tables
如本示例所示。SELECT custom_properties FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';
P oint-in-time 恢复已启用,如以下示例输出所示。
custom_properties ----------------- { ..., "point_in_time_recovery": { "earliest_restorable_timestamp":"2020-06-30T19:19:21.175Z" "status":"enabled" } }
-
-
将表恢复到当前时间。省略该
WITH restore_timestamp = ...
子句时,将使用当前的时间戳。RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable;
-
也可以恢复到由 ISO 8601 格式定义
restore_timestamp
的特定时间点。您可以指定最近 35 天内的任何时间点。例如,以下命令使表还原到EarliestRestorableDateTime
。RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable WITH restore_timestamp = '2020-06-30T19:19:21.175Z';
有关完整的语法描述,请参阅语言参考中的 RESTORE TABLE。
-
-
要验证表的还原是否成功,请查询
system_schema_mcs.tables
,确认表的状态。SELECT status FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable_restored'
该查询会显示以下输出。
status ------ RESTORING
正在还原的表显示状态为 Restoring (正在还原)。恢复过程完成后,表的状态变为 “活动”。
-
- CLI
-
使用将表还原到某个时间点 AWS CLI
创建一个名为
myTable
且已PITR启用的简单表。为了便于阅读,该命令已分成不同的行。aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' --point-in-time-recovery 'status=ENABLED'
确认新表的属性并查
earliestRestorableTimestamp
看PITR。aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
该命令的输出返回了以下内容。
{ "keyspaceName": "myKeyspace", "tableName": "myTable", "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/myKeyspace/table/myTable", "creationTimestamp": "2022-06-20T14:34:57.049000-07:00", "status": "ACTIVE", "schemaDefinition": { "allColumns": [ { "name": "id", "type": "int" }, { "name": "date", "type": "timestamp" }, { "name": "name", "type": "text" } ], "partitionKeys": [ { "name": "id" } ], "clusteringKeys": [], "staticColumns": [] }, "capacitySpecification": { "throughputMode": "PAY_PER_REQUEST", "lastUpdateToPayPerRequestTimestamp": "2022-06-20T14:34:57.049000-07:00" }, "encryptionSpecification": { "type": "AWS_OWNED_KMS_KEY" }, "pointInTimeRecovery": { "status": "ENABLED", "earliestRestorableTimestamp": "2022-06-20T14:35:13.693000-07:00" }, "defaultTimeToLive": 0, "comment": { "message": "" } }
-
-
要将表恢复到某个时间点,请以 ISO 8601
restore_timestamp
格式指定。您可以选择最近 35 天中的任何时间点,时间间隔为 1 秒。例如,以下命令使表还原到EarliestRestorableDateTime
。aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored' --restore-timestamp "2022-06-20 21:35:14.693"
此命令的输出返回已恢复ARN的表的。
{ "restoredTableARN": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/myKeyspace/table/myTable_restored" }
-
要将表恢复到当前时间,可以省略该
restore-timestamp
参数。aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored1'"
-