在 DynamoDB 中啟用point-in-time復原 - Amazon DynamoDB

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

在 DynamoDB 中啟用point-in-time復原

Amazon DynamoDB 時間點復原 (PITR) 可自動備份 DynamoDB 資料表的資料。本章節將概要說明該過程如何在 DynamoDB 中運作。

注意

PITR 的 DynamoDB 費用會根據每個 DynamoDB 資料表的大小而定,包括資料表資料和本機次要索引。設定的最長復原期間不會影響您開啟 PITR 時需支付的價格。為了判斷備份費用,DynamoDB 會持續監控已開啟 PITR 的資料表大小。您必須先支付 PITR 用量的費用,直到您關閉每個資料表的 PITR。

啟用時間點復原

您可以使用 AWS Management Console、 AWS Command Line Interface (AWS CLI) 或 DynamoDB API 啟用point-in-time復原。啟用後,時間點復原會提供連續備份,直到您明確表示將其關閉。

啟用point-in-time復原後,您可以還原至 EarliestRestorableDateTime和 內的任何時間點LatestRestorableDateTime。 通常LatestRestorableDateTime比目前時間早五分鐘。如需詳細資訊,請參閱還原 DynamoDB 資料表至某個時間點

注意

時間點復原過程一律會還原到新資料表。

啟用 PITR (主控台)

使用 DynamoDB 主控台啟用 PITR
  1. 導覽至 DynamoDB 主控台。

  2. 從左側導覽中選擇資料表,然後選取您的 DynamoDB 資料表。

  3. 備份索引標籤中,針對時間點復原選項,選擇編輯

  4. 選擇開啟point-in-time復原

  5. 為您的備份復原期間選擇介於 1 到 35 之間的值。這表示可復原連續備份的最大期間。

啟用 PITR (AWS CLI)

注意

如果您在執行 AWS CLI 命令時收到錯誤,請參閱故障診斷 AWS CLI 錯誤。請確定您使用的是最新版本 AWS CLI 。

在開啟 point-in-time-recovery-specification 設定的情況下執行 update-continuous-backups 命令:

aws dynamodb update-continuous-backups \ --table-name Music \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true,RecoveryPeriodInDays=35

啟用 PITR (AWS CloudFormation)

使用開啟 PointInTimeRecoverySpecification 屬性的 AWS::DynamoDB::Table 資源:

Resources: iotCatalog: Type: AWS::DynamoDB::Table Properties: ... PointInTimeRecoverySpecification: PointInTimeRecoveryEnabled: true RecoveryPeriodInDays: 35

請求語法範例:

{ "PointInTimeRecoverySpecification": { "PointInTimeRecoveryEnabled": boolean, "RecoveryPeriodInDays: number }, "TableName": "string" }

啟用 PITR (API)

PointInTimeRecoverySpecification 參數開啟的情況下執行 UpdateContinuousBackups API 操作。

請求語法範例:

{ "PointInTimeRecoverySpecification": { "PointInTimeRecoveryEnabled": boolean, "RecoveryPeriodInDays" : number }, "TableName": "string" }

回應語法範例:

{ "ContinuousBackupsDescription": { "ContinuousBackupsStatus": "string", "PointInTimeRecoveryDescription": { "PointInTimeRecoveryStatus": "string", "EarliestRestorableDateTime": number, "RecoveryPeriodInDays": number, "LatestRestorableDateTime": number } } }

Python

import boto3 dynamodb = boto3.client('dynamodb') response = dynamodb.update_continuous_backups( TableName=<table_name>, PointInTimeRecoverySpecification={ 'PointInTimeRecoveryEnabled': True, 'RecoveryPeriodInDays': 35 } )

復原期間

您可以將連續備份的復原期間設定為 1 到 35 天之間的任何數字。這RecoveryPeriodInDays將決定維護連續備份的期間。例如,如果您將此值設定為 30 天,則只能將資料表還原至過去 30 天的任何時間點。

注意

PITR 的 DynamoDB 費用會根據每個 DynamoDB 資料表的大小而定,包括資料表資料和本機次要索引。設定的最長復原期間不會影響您開啟 PITR 時需支付的價格。如需定價的詳細資訊,請參閱 DynamoDB 定價

編輯 PITR

您可以在資料表上編輯 PITR 設定,並變更復原期間。如果您變更復原期間,並將其增加到高於先前設定的值,您的 EarliestRestorePoint 將不會立即變更。由於復原期間是滾動時段,DynamoDB 將繼續自動備份,直到達到新的增加期間為止。如果您變更復原期間,並將其減少到低於先前設定的值,您的 EarliestRestorePoint會立即減少以符合您復原期間,而且任何超出新設定值的連續備份將無法復原。

刪除已啟用 PITR 的資料表

當您刪除一個已啟用時間點復原的資料表時,DynamoDB 會自動建立一個備份快照,稱為系統備份,並保留 35 天 (無需額外費用)。您可以使用系統備份,將刪除的資料表還原至刪除前的狀態。所有的系統備份都遵循資料表-名稱$DeletedTableBackup的標準命名慣例。

注意

刪除已啟用point-in-time復原的資料表後,您可以使用系統備份將該資料表還原至單一時間點。系統備份將在刪除資料表時建立,並且是資料表刪除前的資料表快照。