

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

# 從備份中還原 DynamoDB 資料表
<a name="Restore.Tutorial"></a>

本節說明如何使用 Amazon DynamoDB 主控台或AWS Command Line Interface() 從備份還原資料表AWS CLI。

**注意**  
如果您想要使用AWS CLI，您必須先進行設定。如需詳細資訊，請參閱[存取 DynamoDB](AccessingDynamoDB.md)。

**Topics**

## 從備份中還原資料表 (主控台)
<a name="restoretable_console"></a>

下列程序示範如何使用在「`Music`」教學中建立的 `MusicBackup` 檔案還原 [備份 DynamoDB 資料表](Backup.Tutorial.md) 資料表。

**注意**  
此程序假設在使用 `Music` 檔案還原資料表前 `MusicBackup` 資料表已不存在。

**從備份還原資料表**

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

1. 在主控台左側的導覽窗格中，選擇 **Backups** (備份)。

1. 在備份清單中，選擇 `MusicBackup`。  
![\[備份清單和建立備份按鈕的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/amazondynamodb/latest/developerguide/images/select_musicbackup.png)

1. 選擇 **Restore** (還原)。

1. 輸入 **Music** 做為新資料表的名稱。確認備份名稱和其他備份詳細資訊。然後選擇 **Restore table** (還原資料表) 啟動還原程序。
**注意**  
您可以將資料表還原至與備份所在的相同AWS區域或不同區域。您可以阻止在新還原的資料表上建立次要索引。此外，您可以指定不同的加密模式。  
從備份還原的資料表一律使用 DynamoDB 標準資料表類別建立。  
![\[具有備份資料表詳細資訊之從備份還原資料表畫面的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/amazondynamodb/latest/developerguide/images/restore_table.png)

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

## 從備份中還原資料表 (AWS CLI)
<a name="restoretable_cli"></a>

請依照下列步驟，使用[備份 DynamoDB 資料表](Backup.Tutorial.md)教學課程中建立`MusicBackup`的AWS CLI來使用 還原`Music`資料表。

**從備份還原資料表**

1. 使用 `list-backups` 命令確認您想要還原的備份。此範例使用 `MusicBackup`。

   ```
   aws dynamodb list-backups
   ```

   如需備份的其他詳細資訊，請使用 `describe-backup` 命令。您可以從上一步取得輸入 `backup-arn`。

   ```
   aws dynamodb describe-backup \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
   ```

1. 從備份還原資料表。在此情況下， 會將`Music`資料表`MusicBackup`還原至相同的AWS區域。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
   ```

1. 利用自訂的資料表設定，從儲存貯體還原資料表。在本例中，`MusicBackup` 會還原 `Music` 資料表並指定還原資料表的加密模式。
**注意**  
`sse-specification-override` 參數採用的數值與 `CreateTable` 命令中使用的 `sse-specification-override` 參數相同。如需詳細資訊，請參閱 [在 DynamoDB 中管理加密資料表](encryption.tutorial.md)。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581080476474-e177ebe2 \
   --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
   ```

   您可以將資料表還原到與備份所在的不同AWS區域。
**注意**  
執行跨區域還原必須使用 `sse-specification-override` 參數，而還原至與來源資料表相同的區域時則可選用此參數。
從命令列執行跨區域還原時，您必須將預設AWS區域設定為所需的目的地區域。如需進一步了解，請參閱《AWS Command Line Interface使用者指南》中的[命令列選項](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html)。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581080476474-e177ebe2 \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```

   您可以覆寫帳單模式及佈建給還原資料表的輸送量。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d \
   --billing-mode-override PAY_PER_REQUEST
   ```

   您可以阻止在還原的資料表上建立部分或全部次要索引。
**注意**  
如果您阻止在還原的資料表上建立部分或全部次要索引，可加速還原且更符合經濟效益。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581081403719-db9c1f91 \
   --global-secondary-index-override '[]' \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```
**注意**  
提供的次要索引應該符合現有索引。您無法在還原時建立新索引。

   您可以使用不同覆寫的組合。例如，您可以使用單一全域次要索引，同時變更所佈建的輸送量，如下所示。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:eu-west-1:123456789012:table/Music/backup/01581082594992-303b6239 \
   --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=5,WriteCapacityUnits=5}" \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```

 若要確認還原，請使用 `describe-table` 命令描述 `Music` 資料表。

```
aws dynamodb describe-table --table-name Music 
```

正在從備份還原的資料表會顯示為 **Creating (正在建立)** 狀態。還原程序完成後，`Music` 資料表的狀態會變更為 **Active** (作用中)。

**重要**  
當還原正在進行時，請勿修改或刪除 IAM 角色政策，否則可能會造成非預期的行為。例如，假設您在資料表還原時移除資料表的寫入許可。在此案例中，基礎 `RestoreTableFromBackup` 操作會無法將任何還原的資料寫入資料表。  
還原操作完成後，您就可以修改或刪除 IAM 角色政策。  
涉及存取目標還原資料表的[來源 IP 限制](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip)的 IAM 政策，應該將 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice) 金鑰設定為 `false`，以此確保限制僅適用於委託人直接提出的請求。否則，還原將被取消。  
如果您的備份使用AWS 受管金鑰或客戶受管金鑰加密，請勿在還原進行時停用或刪除金鑰，否則還原將會失敗。  
還原操作完成後，您可以變更還原資料表的加密金鑰，並停用或刪除舊的金鑰。