本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 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
-
導覽至 DynamoDB 主控台。
-
從左側導覽中選擇資料表,然後選取您的 DynamoDB 資料表。
-
從備份索引標籤中,針對時間點復原選項,選擇編輯。
-
選擇開啟point-in-time復原。
-
為您的備份復原期間選擇介於 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復原的資料表後,您可以使用系統備份將該資料表還原至單一時間點。系統備份將在刪除資料表時建立,並且是資料表刪除前的資料表快照。