

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 point-in-time復原來備份和還原資料
<a name="PointInTimeRecovery"></a>

Point-in-time復原 (PITR) 透過提供資料表資料的連續備份，協助保護您的 Amazon Keyspaces 資料表免於意外寫入或刪除操作。

例如，假設測試指令碼意外寫入生產 Amazon Keyspaces 資料表。透過point-in-time復原，您可以將該資料表的資料還原至過去 35 天內啟用 PITR 後的任何一秒。如果您刪除已啟用point-in-time復原的資料表，您可以查詢已刪除資料表的資料 35 天 （無需額外費用），並將其還原至剛好在刪除點之前的狀態。

您可以使用 主控台、 AWS SDK 和 AWS Command Line Interface (AWS CLI) 或 Cassandra 查詢語言 (CQL)，將 Amazon Keyspaces 資料表還原至某個時間點。如需詳細資訊，請參閱[在 point-in-time復原](PointInTimeRecovery_Tutorial.md)。

Point-in-time操作對基礎資料表沒有效能或可用性影響，還原資料表不會消耗額外的輸送量。

如需 PITR 配額的詳細資訊，請參閱 [Amazon Keyspaces 配額 （適用於 Apache Cassandra)](quotas.md)。

如需定價的相關資訊，請參閱 [Amazon Keyspaces （適用於 Apache Cassandra) 定價](https://aws.amazon.com/keyspaces/pricing)。

**Topics**
+ [point-in-time復原如何在 Amazon Keyspaces 中運作](PointInTimeRecovery_HowItWorks.md)
+ [在 point-in-time復原](PointInTimeRecovery_Tutorial.md)

# point-in-time復原如何在 Amazon Keyspaces 中運作
<a name="PointInTimeRecovery_HowItWorks"></a>

本節概述 Amazon Keyspaces point-in-time復原 (PITR) 的運作方式。如需定價的詳細資訊，請參閱 [Amazon Keyspaces （適用於 Apache Cassandra) 定價](https://aws.amazon.com/keyspaces/pricing)。

**Topics**
+ [PITR 連續備份的時間範圍](#howitworks_backup_window)
+ [PITR 還原設定](#howitworks_backup_settings)
+ [加密資料表的 PITR 還原](#howitworks_backup_encryption)
+ [多區域資料表的 PITR 還原](#howitworks_backup_multiRegion)
+ [使用使用者定義類型 (UDTs) 還原資料表的 PITR](#howitworks_backup_udt)
+ [PITR 的資料表還原時間](#howitworks_restore_time)
+ [Amazon Keyspaces PITR 和 AWS 服務整合](#howitworks_integration)

## PITR 連續備份的時間範圍
<a name="howitworks_backup_window"></a>

Amazon Keyspaces PITR 使用兩個時間戳記來維護資料表可使用可還原備份的時間範圍。
+ 最早可還原時間 – 標記最早可還原備份的時間。最早的可還原備份最多可備份 35 天，或啟用 PITR 時，以較新者為準。35 天的最大備份時段無法修改。
+ 目前時間 – 最新可還原備份的時間戳記是目前時間。如果在還原期間未提供時間戳記，則會使用目前時間。

啟用 PITR 時，您可以還原至 `EarliestRestorableDateTime`和 之間的任何時間點`CurrentTime`。您只能將資料表資料還原至啟用 PITR 的時間。

如果您停用 PITR 之後再次啟用，您可以將第一個可用備份的開始時間重設為重新啟用 PITR 的時間。這表示停用 PITR 會清除您的備份歷史記錄。

**注意**  
資料表上的資料定義語言 (DDL) 操作，例如結構描述變更，會以非同步方式執行。您只能在還原的資料表資料中查看已完成的操作，但如果來源資料表在還原時正在進行，您可能會在來源資料表上看到其他動作。如需 DDL 陳述式的清單，請參閱 [Amazon Keyspaces 中的 DDL 陳述式 （資料定義語言）](cql.ddl.md)。

資料表不需要處於作用中狀態即可還原。如果在刪除的資料表上啟用 PITR，且刪除發生在備份時段 （或過去 35 天內），您也可以還原刪除的資料表。

**注意**  
如果使用與先前刪除的資料表相同的合格名稱 （例如 mykeyspace.mytable) 建立新資料表，則刪除的資料表將無法再還原。如果您嘗試從主控台執行此操作，則會顯示警告。

## PITR 還原設定
<a name="howitworks_backup_settings"></a>

當您使用 PITR 還原資料表時，Amazon Keyspaces 會根據選取的時間戳記 (`day:hour:minute:second`) 將來源資料表的結構描述和資料還原至 狀態。PITR 不會覆寫現有的資料表。

除了資料表的結構描述和資料之外，PITR 還會`custom_properties`從來源資料表還原 。與根據最早還原時間和目前時間之間選取的時間戳記還原的資料表資料不同，自訂屬性一律會根據截至目前時間的資料表設定還原。

還原資料表的設定會比對來源資料表的設定，以及啟動還原時的時間戳記。如果您想要在還原期間覆寫這些設定，您可以使用 來執行此操作`WITH custom_properties`。自訂屬性包括下列設定。
+ 讀取/寫入容量模式
+ 佈建的輸送量容量設定
+ PITR 設定

如果資料表處於佈建容量模式且已啟用自動擴展，則還原操作也會還原資料表的自動擴展設定。您可以使用 CQL 中的 `autoscaling_settings` 參數或使用 CLI `autoScalingSpecification` 覆寫它們。如需自動擴展設定的詳細資訊，請參閱 [使用 Amazon Keyspaces 自動擴展自動管理輸送量容量](autoscaling.md)。

當您執行完整資料表還原時，還原資料表的所有資料表設定都是來自還原時來源資料表的目前設定。

例如，假設資料表的佈建輸送量最近降低至 50 個讀取容量單位及 50 個寫入容量單位。然後，您將資料表的狀態還原至三週前。目前，其佈建的輸送量設定為 100 個讀取容量單位和 100 個寫入容量單位。在此情況下，Amazon Keyspaces 會將資料表資料還原到該時間點，但會使用目前的佈建輸送量設定 (50 個讀取容量單位和 50 個寫入容量單位）。

不會還原下列設定，您必須手動為新資料表設定這些設定。
+ Amazon Keyspaces 變更資料擷取 (CDC) 串流
+ AWS Identity and Access Management (IAM) 政策
+ Amazon CloudWatch 指標和警示
+ 標籤 （可使用 新增至 CQL `RESTORE`陳述式`WITH TAGS`)

## 加密資料表的 PITR 還原
<a name="howitworks_backup_encryption"></a>

當您使用 PITR 還原資料表時，Amazon Keyspaces 會還原來源資料表的加密設定。如果資料表使用 AWS 擁有的金鑰 （預設） 加密，資料表會自動以相同的設定還原。如果您要還原的資料表是使用客戶受管金鑰加密的，Amazon Keyspaces 需要存取相同的客戶受管金鑰才能還原資料表資料。

您可以在還原時變更資料表的加密設定。若要從 AWS 擁有的金鑰 變更為客戶受管金鑰，您需要在還原時提供有效且可存取的客戶受管金鑰。

如果您想要從客戶受管金鑰變更為 AWS 擁有的金鑰，請確認 Amazon Keyspaces 可存取來源資料表的客戶受管金鑰，以使用 還原資料表 AWS 擁有的金鑰。如需資料表靜態加密設定的詳細資訊，請參閱 [靜態加密：在 Amazon Keyspaces 中運作的方式](encryption.howitworks.md)。

**注意**  
如果因為 Amazon Keyspaces 無法存取客戶受管金鑰而刪除資料表，您需要確保 Amazon Keyspaces 可以存取客戶受管金鑰，然後再嘗試還原資料表。如果 Amazon Keyspaces 無法存取該金鑰，則無法還原使用客戶受管金鑰加密的資料表。如需詳細資訊，請參閱[《 開發人員指南》中的對金鑰存取進行故障診斷](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html)。 AWS Key Management Service 

## 多區域資料表的 PITR 還原
<a name="howitworks_backup_multiRegion"></a>

您可以使用 PITR 還原多區域資料表。若要讓還原操作成功，必須在來源資料表的所有複本上啟用 PITR，且來源和目的地資料表都必須複寫至相同的複本 AWS 區域。

Amazon Keyspaces 會在屬於金鑰空間的每個複寫區域中還原來源資料表的設定。您也可以在還原操作期間覆寫設定。如需可在還原期間變更之設定的詳細資訊，請參閱 [PITR 還原設定](#howitworks_backup_settings)。

如需多區域複寫的詳細資訊，請參閱 [多區域複寫如何在 Amazon Keyspaces 中運作](multiRegion-replication_how-it-works.md)。

## 使用使用者定義類型 (UDTs) 還原資料表的 PITR
<a name="howitworks_backup_udt"></a>

您可以還原使用 UDTs資料表。若要讓還原操作成功，參考UDTs 必須在 金鑰空間中存在且有效。

如果您在嘗試還原資料表時遺失任何必要的 UDT，Amazon Keyspaces 會嘗試自動還原 UDT 結構描述，然後繼續還原資料表。

如果您移除並重新建立 UDT，Amazon Keyspaces 會使用 UDT 的新結構描述還原 UDT，並拒絕使用原始 UDT 結構描述還原資料表的請求。在此情況下，如果您想要使用舊的 UDT 結構描述還原資料表，您可以將資料表還原至新的金鑰空間。當您刪除並重新建立 UDT 時，即使重新建立 UDT 的結構描述與已刪除 UDT 的結構描述相同，重新建立的 UDT 也會被視為新的 UDT。在此情況下，Amazon Keyspaces 會拒絕使用舊 UDT 結構描述還原資料表的請求。

如果 UDT 遺失，且 Amazon Keyspaces 嘗試還原 UDT，則如果您已達到區域中帳戶的 UDTs 數目上限，則嘗試會失敗。

如需 UDT 配額和預設值的詳細資訊，請參閱 [Amazon Keyspaces 中使用者定義類型 (UDTs) 的配額和預設值](quotas.md#quotas-udts)。如需使用 UDTs的詳細資訊，請參閱 [Amazon Keyspaces 中使用者定義的類型 (UDT)](udts.md)。

## PITR 的資料表還原時間
<a name="howitworks_restore_time"></a>

還原資料表所需的時間是以多個因素為基礎，且不一定與資料表的大小直接相關。

以下是還原時間的一些考量。
+ 將備份還原至新資料表。執行建立新表格和啟動恢復程序的所有動作，最多可能需要 20 分鐘的時間 (即使表格是空的)。
+ 對於具有分佈良好的資料模型的大型資料表，還原時間可以是數小時或更長時間。
+ 如果您的來源資料表包含大幅扭曲的資料，還原時間可能會增加。例如，如果您資料表的主索引鍵使用當月做為分割區索引鍵，而且所有資料都是從 12 月開始，表示您資料偏斜。

規劃災難復原的最佳實務是定期記錄平均還原完成時間，並確認這些時間如何影響整體復原時間點目標。

## Amazon Keyspaces PITR 和 AWS 服務整合
<a name="howitworks_integration"></a>

使用 記錄下列 PITR 操作 AWS CloudTrail ，以啟用持續監控和稽核。
+ 建立啟用或停用 PITR 的新資料表。
+ 在現有資料表上啟用或停用 PITR。
+ 還原作用中或已刪除的資料表。

如需詳細資訊，請參閱[使用 記錄 Amazon Keyspaces API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)。

您可以使用 執行下列 PITR 動作 CloudFormation。
+ 建立啟用或停用 PITR 的新資料表。
+ 在現有資料表上啟用或停用 PITR。

如需詳細資訊，請參閱[CloudFormation 《 使用者指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)》中的 [Cassandra 資源類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Cassandra.html)。

# 在 point-in-time復原
<a name="PointInTimeRecovery_Tutorial"></a>

使用 Amazon Keyspaces （適用於 Apache Cassandra)，您可以使用時間點還原 (PITR) Point-in-Time 將資料表還原至特定時間點。PITR 可讓您將資料表還原至過去 35 天內的狀態，提供資料保護和復原功能。此功能在意外刪除資料、應用程式錯誤或用於測試等情況下非常有用。您可以快速有效地復原資料，將停機時間和資料遺失降到最低。以下各節會引導您完成在 Amazon Keyspaces 中使用 PITR 還原資料表的程序，以確保資料完整性和業務連續性。

**Topics**
+ [設定 Amazon Keyspaces PITR 的還原資料表 IAM 許可](howitworks_restore_permissions.md)
+ [在 Amazon Keyspaces 中設定資料表的 PITR](configure_PITR.md)
+ [關閉 Amazon Keyspaces 資料表的 PITR](disable_PITR.md)
+ [將資料表從備份還原到 Amazon Keyspaces 中指定的時間點](restoretabletopointintime.md)
+ [使用 Amazon Keyspaces PITR 還原已刪除的資料表](restoredeleted.md)

# 設定 Amazon Keyspaces PITR 的還原資料表 IAM 許可
<a name="howitworks_restore_permissions"></a>

本節摘要說明如何設定 AWS Identity and Access Management (IAM) 主體的許可來還原 Amazon Keyspaces 資料表。在 IAM 中， AWS 受管政策`AmazonKeyspacesFullAccess`包含還原 Amazon Keyspaces 資料表的許可。若要實作具有最低必要許可的自訂政策，請考慮下一節中概述的需求。

若要成功還原資料表，IAM 主體需要下列最低許可：
+ `cassandra:Restore` – 目標資料表需要還原動作才能還原。
+ `cassandra:Select` – 從來源資料表讀取時需要選取動作。
+ `cassandra:TagResource` – 標籤動作是選用的，只有在還原操作新增標籤時才需要。

這是將最低必要許可授予使用者以還原金鑰空間 中的資料表的政策範例`mykeyspace`。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "cassandra:Restore",
            "cassandra:Select"
         ],
         "Resource":[
            "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/*",
            "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
         ]
      }
   ]
}
```

根據其他選取的功能，可能需要其他許可才能還原資料表。例如，如果來源資料表使用客戶受管金鑰進行靜態加密，Amazon Keyspaces 必須具有存取來源資料表之客戶受管金鑰的許可，才能成功還原資料表。如需詳細資訊，請參閱[加密資料表的 PITR 還原](PointInTimeRecovery_HowItWorks.md#howitworks_backup_encryption)。

如果您使用 IAM 政策搭配[條件金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)來限制特定來源的傳入流量，您必須確保 Amazon Keyspaces 具有代表您委託人執行還原操作的許可。如果您的政策將傳入流量限制為下列任何項目，您必須將 `aws:ViaAWSService`條件金鑰新增至 IAM 政策：
+ 使用 的 VPC 端點 `aws:SourceVpce`
+ 使用 的 IP 範圍 `aws:SourceIp`
+ 使用 VPCs `aws:SourceVpc`

當任何 AWS 服務使用委託人的登入資料提出請求時， `aws:ViaAWSService`條件金鑰允許存取。如需詳細資訊，請參閱《[IAM 使用者指南》中的 IAM JSON 政策元素：條件索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。 **

以下是將來源流量限制為特定 IP 地址，並允許 Amazon Keyspaces 代表委託人還原資料表的政策範例。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"CassandraAccessForCustomIp",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"false"
            },
            "ForAnyValue:IpAddress":{
               "aws:SourceIp":[
                  "123.45.167.89"
               ]
            }
         }
      },
      {
         "Sid":"CassandraAccessForAwsService",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"true"
            }
         }
      }
   ]
}
```

 如需使用`aws:ViaAWSService`全域條件金鑰的範例政策，請參閱 [VPC 端點政策和 Amazon Keyspaces point-in-time(PITR)](vpc-endpoints.md#VPC_PITR_restore)。

# 在 Amazon Keyspaces 中設定資料表的 PITR
<a name="configure_PITR"></a>

您可以在 Amazon Keyspaces 中設定資料表，以搭配主控台、CQL 和 使用 PITR 進行備份和還原操作 AWS CLI。

使用 CQL 或 建立新資料表時 AWS CLI，您必須在建立資料表陳述式中明確啟用 PITR。當您使用主控台建立新資料表時，預設會啟用 PITR。

若要了解如何還原資料表，請參閱 [將資料表從備份還原到 Amazon Keyspaces 中指定的時間點](restoretabletopointintime.md)。

------
#### [ Console ]

**使用主控台設定資料表的 PITR**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

1. 在導覽窗格中，選擇**資料表**，然後選取您要編輯的資料表。

1. 在**備份**索引標籤上，選擇**編輯**。

1. 在**編輯point-in-time復原設定**區段中，選取**啟用Point-in-time復原**。

1. 選擇**儲存變更**。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 設定資料表的 PITR**

1. 您可以使用 `point_in_time_recovery`自訂屬性來管理資料表的 PITR 設定。

   若要在建立新資料表時啟用 PITR，您必須將狀態設定為 `point_in_time_recovery` `enabled`。您可以使用下列 CQL 命令做為範例。

   ```
   CREATE TABLE "my_keyspace1"."my_table1"(
   	"id" int,
   	"name" ascii,
   	"date" timestamp,
   	PRIMARY KEY("id"))
   WITH CUSTOM_PROPERTIES = {
   	'capacity_mode':{'throughput_mode':'PAY_PER_REQUEST'}, 
   	'point_in_time_recovery':{'status':'enabled'}
   }
   ```
**注意**  
如果未指定point-in-time復原自訂屬性，則時間點point-in-time復原預設為停用。

1. 若要使用 CQL 為現有資料表啟用 PITR，請執行下列 CQL 命令。

   ```
   ALTER TABLE mykeyspace.mytable
   WITH custom_properties = {'point_in_time_recovery': {'status': 'enabled'}}
   ```

------
#### [ CLI ]

**使用 設定資料表的 PITR AWS CLI**

1. 您可以使用 `UpdateTable` API 管理資料表的 PITR 設定。

   若要在建立新資料表時啟用 PITR，您必須在建立資料表命令`point-in-time-recovery 'status=ENABLED'`中包含 。您可以使用下列 AWS CLI 命令做為範例。命令已分成不同的行來改善可讀性。

   ```
   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'
   ```
**注意**  
如果未指定point-in-time復原值，則會預設停用point-in-time復原。

1. 若要確認資料表的point-in-time復原設定，您可以使用下列 AWS CLI 命令。

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

1. 若要使用 為現有資料表啟用 PITR AWS CLI，請執行下列命令。

   ```
   aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=ENABLED'
   ```

------

# 關閉 Amazon Keyspaces 資料表的 PITR
<a name="disable_PITR"></a>

您可以隨時使用主控台、CQL 或 來關閉 Amazon Keyspaces 資料表的 PITR AWS CLI。

**重要**  
停用 PITR 會立即刪除備份歷史記錄，即使您在 35 天內在資料表上重新啟用 PITR。

若要了解如何還原資料表，請參閱 [將資料表從備份還原到 Amazon Keyspaces 中指定的時間點](restoretabletopointintime.md)。

------
#### [ Console ]

**使用主控台停用資料表的 PITR**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

1. 在導覽窗格中，選擇**資料表**，然後選取您要編輯的資料表。

1. 在**備份**索引標籤上，選擇**編輯**。

1. 在**編輯point-in-time復原設定**區段中，清除**啟用Point-in-time復原**核取方塊。

1. 選擇**儲存變更**。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 停用資料表的 PITR**
+ 若要停用現有資料表的 PITR，請執行下列 CQL 命令。

  ```
  ALTER TABLE mykeyspace.mytable
  WITH custom_properties = {'point_in_time_recovery': {'status': 'disabled'}}
  ```

------
#### [ CLI ]

**使用 停用資料表的 PITR AWS CLI**
+ 若要停用現有資料表的 PITR，請執行下列 AWS CLI 命令。

  ```
  aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=DISABLED'
  ```

------

# 將資料表從備份還原到 Amazon Keyspaces 中指定的時間點
<a name="restoretabletopointintime"></a>

下一節示範如何將現有的 Amazon Keyspaces 資料表還原至指定的時間點。

**注意**  
此程序假設您使用的資料表已設定point-in-time復原。若要啟用資料表的 PITR，請參閱 [在 Amazon Keyspaces 中設定資料表的 PITR](configure_PITR.md)。

**重要**  
 還原進行中時，請勿修改或刪除授予 IAM 主體 （例如使用者、群組或角色） 執行還原許可的 AWS Identity and Access Management (IAM) 政策。否則，可能會造成意外行為。例如，如果您在資料表還原時移除資料表的寫入許可，基礎`RestoreTableToPointInTime`操作就無法將任何還原的資料寫入資料表。  
您只能在還原操作完成後修改或刪除許可。

------
#### [ Console ]

**使用主控台將資料表還原至指定的時間點**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

1. 在主控台左側的導覽窗格中，選擇 **Tables** (資料表)。

1. 在資料表清單中，選擇您要還原的資料表。

1. 在資料表的**備份**索引標籤的**Point-in-time復原**區段中，選擇**還原**。

1. 針對新的資料表名稱，輸入還原資料表的新名稱，例如 **mytable\$1restored**。

1. 若要定義還原操作的時間點，您可以選擇兩個選項：
   + 選取預先設定的**最早**時間。
   + 選取**指定日期和時間**，然後輸入您要還原新資料表的日期和時間。
**注意**  
您可以在**最早**時間和目前時間還原至任何時間點。Amazon Keyspaces 會根據選取的日期和時間 （日：小時：分鐘：秒） 將資料表資料還原至 狀態。

1. 選擇**還原**以開始還原程序。

   正在還原的資料表會顯示為 **Restoring (正在還原)** 狀態。還原程序完成後，還原資料表的狀態會變更為**作用中**。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 將資料表還原至某個時間點**

1. 您可以將作用中資料表還原至介於 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';
   ```

   Point-in-time復原已啟用，如下列範例輸出所示。

   ```
   custom_properties
   -----------------
   {
     ...,
       "point_in_time_recovery": {
       "earliest_restorable_timestamp":"2020-06-30T19:19:21.175Z"
       "status":"enabled"
     }
   }
   ```

1. 
   + 將資料表還原至目前時間。當您省略 `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 資料表](cql.ddl.table.md#cql.ddl.table.restore)中的 。

1. 若要驗證資料表的還原是否成功，請查詢 `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**

1. 建立名為 `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'
   ```

1. 確認新資料表的屬性，並檢閱 PITR `earliestRestorableTimestamp` 的 。

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

   此命令的輸出會傳回下列項目。

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/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": ""
       }
   }
   ```

1. 
   + 若要將資料表還原至某個時間點，`restore_timestamp`請以 ISO 8601 格式指定 。您可以選擇過去 35 天內的任何時間點，每隔一秒鐘。例如，下列命令可復原資料表至 `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:111122223333:/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'"
     ```

------

# 使用 Amazon Keyspaces PITR 還原已刪除的資料表
<a name="restoredeleted"></a>

下列程序說明如何將已刪除的資料表從備份還原至刪除時間。您可以使用 CQL 或 來執行此操作 AWS CLI。

**注意**  
此程序假設刪除的資料表上已啟用 PITR。



------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 還原已刪除的資料表**

1. 若要確認已刪除資料表已啟用point-in-time復原，請查詢系統資料表。只會顯示已啟用point-in-time復原的資料表。

   ```
   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"
      }
   }
   ```

1. 使用下列範例陳述式將資料表還原至刪除時間。

   ```
   RESTORE TABLE mykeyspace.mytable_restored
   FROM TABLE mykeyspace.mytable;
   ```

------
#### [ CLI ]

**使用 還原已刪除的資料表 AWS CLI**

1. 刪除您先前建立且已啟用 PITR 的資料表。下列是範例命令。

   ```
   aws keyspaces delete-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

1. 使用下列命令將已刪除的資料表還原至刪除時間。

   ```
   aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored2'
   ```

   此命令的輸出會傳回還原資料表的 ARN。

   ```
   {
       "restoredTableARN": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable_restored2"
   }
   ```

------