本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon DynamoDB 時間點復原 (PITR) 可持續備份 DynamoDB 資料表的資料。您可使用 DynamoDB 主控台或 AWS Command Line Interface (AWS CLI),以將資料表還原至某個時間點。時間點復原過程會還原到新資料表。
如果您想要使用 AWS CLI,您必須先進行設定。如需詳細資訊,請參閱存取 DynamoDB。
還原 DynamoDB 資料表至某個時間點 (主控台)
以下範例示範如何使用 DynamoDB 主控台將名為 Music
的現有資料表還原至某個時間點。
注意
此程序假設您已經啟用時間點復原。若要啟用Music
資料表,在 Backups (備份)索引標籤的 Point-in-time recover (PITR) (時間點復原) 區段中,選擇Edit (編輯),然後勾選 Enable point-in-time-recovery (啟用時間點復原)。
還原資料表至某個時間點
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/dynamodb/
開啟 DynamoDB 主控台。 -
在主控台左側的導覽窗格中,選擇 Tables (資料表)。
-
在資料表清單中,選擇
Music
資料表。 -
在
Music
資料表 Backups (備份) 索引標籤上的Point-in-time recovery (時間點復原) 區段,選擇 Restore (還原)。 -
輸入
MusicMinutesAgo
做為新資料表的名稱。注意
您可以將資料表還原至與來源資料表所在的相同 AWS 區域或不同區域。您也可以阻止在還原的資料表上建立次要索引。此外,您可以指定不同的加密模式。
-
若要確認可還原時間,請將還原日期和時間設為 Earliest (最近)。然後選擇 Restore (還原) 啟動還原程序。
正在還原的資料表會顯示為 Restoring (正在還原) 狀態。還原程序完成後,
MusicMinutesAgo
資料表的狀態會變更為 Active (作用中)。
還原資料表至某個時間點 (AWS CLI)
下列程序說明如何使用 AWS CLI 將名為 的現有資料表還原Music
至某個時間點。
注意
此程序假設您已經啟用時間點復原。若要針對 Music
資料表啟用程序,請執行下列命令。
aws dynamodb update-continuous-backups \ --table-name Music \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=True
還原資料表至某個時間點
-
使用
Music
命令以確認為describe-continuous-backups
資料表啟用了時間點復原。aws dynamodb describe-continuous-backups \ --table-name Music
連續備份 (在建立資料表時自動啟用) 和時間點復原已啟用。
{ "ContinuousBackupsDescription": { "PointInTimeRecoveryDescription": { "PointInTimeRecoveryStatus": "ENABLED", "EarliestRestorableDateTime": 1519257118.0, "LatestRestorableDateTime": 1520018653.01 }, "ContinuousBackupsStatus": "ENABLED" } }
-
還原資料表至某個時間點。在本例中,
Music
資料表會還原至相同 AWS 區域的LatestRestorableDateTime
(~5 分鐘前)。aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time
注意
您也可還原至特定時間點。若要執行此作業,請使用
--restore-date-time
引數執行該命令,並指定時間戳記。您可以在設定的復原期間內指定任何時間點,其可設定為 1 到 35 天之間的任何值。例如,下列命令可復原資料表至EarliestRestorableDateTime
。aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicEarliestRestorableDateTime \ --no-use-latest-restorable-time \ --restore-date-time 1519257118.0
當復原到特定時間點時,指定
--no-use-latest-restorable-time
引數是選擇性的。 -
利用自訂的資料表設定,將資料表還原至某個時間點。在此案例中,
Music
資料表會還原至LatestRestorableDateTime
(~5分鐘以前)。您可以為還原的資料表指定不同的加密模式,如下所示。
注意
sse-specification-override
參數採用的數值與CreateTable
命令中使用的sse-specification-override
參數相同。如需進一步了解,請參閱 在 DynamoDB 中管理加密資料表。aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
您可以將資料表還原至來源資料表所在的不同 AWS 區域。
注意
-
執行跨區域還原必須使用
sse-specification-override
參數,而還原至與來源資料表相同的區域時則可選用此參數。 -
執行跨區域還原必須提供
source-table-arn
參數。 -
從命令列執行跨區域還原時,您必須將預設 AWS 區域設定為所需的目的地區域。如需進一步了解,請參閱《AWS Command Line Interface 使用者指南》中的命令列選項。
aws dynamodb restore-table-to-point-in-time \ --source-table-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
您可以覆寫帳單模式及佈建給還原資料表的輸送量。
aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --billing-mode-override PAY_PER_REQUEST
您可以阻止在還原的資料表上建立部分或全部次要索引。
注意
如果您阻止在新還原的資料表上建立部分或全部次要索引,可加速還原且更符合經濟效益。
aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --global-secondary-index-override '[]'
您可以使用不同覆寫的組合。例如,您可以使用單一全域次要索引,同時變更所佈建的輸送量,如下所示。
aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --billing-mode-override PROVISIONED \ --provisioned-throughput-override ReadCapacityUnits=100,WriteCapacityUnits=100 \ --global-secondary-index-override IndexName=singers-index,KeySchema=["{AttributeName=SingerName,KeyType=HASH}"],Projection="{ProjectionType=KEYS_ONLY}",ProvisionedThroughput="{ReadCapacityUnits=50,WriteCapacityUnits=50}" \ --sse-specification-override Enabled=true,SSEType=KMS \ --use-latest-restorable-time
-
若要確認還原,請使用 describe-table
命令描述 MusicEarliestRestorableDateTime
資料表。
aws dynamodb describe-table --table-name MusicEarliestRestorableDateTime
正在還原的資料表會顯示為 Creating (正在建立) 的狀態,且復原會做為 true 進行。還原程序完成後,MusicEarliestRestorableDateTime
資料表的狀態會變更為 Active (作用中)。
重要
還原進行中時,請勿修改或刪除授予 IAM 實體 (例如使用者、群組或角色) 執行還原許可的 AWS Identity and Access Management (IAM) 政策。否則,可能會造成意外行為。例如,假設您在資料表還原時移除資料表的寫入許可。在此案例中,基礎 RestoreTableToPointInTime
操作無法將任何還原的資料寫入資料表。涉及存取目標還原資料表的來源 IP 限制的 IAM 政策可能也會導致問題。
只有在復原操作完成後,才能修改或刪除許可。