

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

# 將 DynamoDB 資料表從一個帳戶移轉至另一帳戶
<a name="bp-migrating-table-between-accounts"></a>

您可以將 Amazon DynamoDB 資料表從一個帳戶移轉至另一帳戶，以實施多帳戶或備份策略。您也可因測試、偵錯或合規需求執行此操作。常見的使用案例是跨生產、預備、測試和開發環境複製 DynamoDB 資料表，其中每個環境都會使用不同的 AWS 帳戶。

DynamoDB 提供兩個選項，可將資料表從一個帳戶遷移到另一個 AWS 帳戶：
+ **AWS Backup for Cross-Account Backup and Restore：** AWS Backup 是一項全受管備份服務，可讓您集中管理多個 AWS 服務的備份。使用其跨帳戶備份與還原功能，可在一帳戶中備份 DynamoDB 資料表，並將其還原至同一 AWS 組織內的另一帳戶。
+ **DynamoDB 匯出和匯入至 Amazon S3：**使用 DynamoDB 匯出和匯入至 Amazon S3 功能可讓您完整匯出至 Amazon S3 儲存貯體，然後將該資料匯入至另一個 AWS 帳戶中的新資料表。當您需要在不屬於相同 AWS 組織的帳戶之間遷移，或者您不想使用 時，此方法很適合 AWS Backup。

**注意**  
從 Amazon S3 匯入不支援含本機次要索引 (LSI) 的資料表，但支援全域次要索引 (GSI)。如需 LSI 與 GSI 的詳細資訊，請參閱 [在 DynamoDB 中使用次要索引來改善資料存取](SecondaryIndexes.md)。

**Topics**
+ [使用 遷移資料表 AWS Backup 以進行跨帳戶備份和還原](bp-migrating-table-between-accounts-backup.md)
+ [使用匯出至 S3 並從 S3 匯入的方式移轉資料表](bp-migrating-table-between-accounts-s3.md)

# 使用 遷移資料表 AWS Backup 以進行跨帳戶備份和還原
<a name="bp-migrating-table-between-accounts-backup"></a>

**先決條件**
+ 來源和目標 AWS 帳戶必須屬於 Organizations AWS 服務中的相同組織
+ 建立和使用 AWS Backup 保存庫的有效 AWS Identity and Access Management (IAM) 許可

如需設定跨帳戶備份的詳細資訊，請參閱[跨 AWS 帳戶建立備份複本](https://docs.aws.amazon.com/aws-backup/latest/devguide/create-cross-account-backup.html)。

**定價資訊**

AWS 備份 （根據資料表大小）、區域間 AWS 的任何資料複製 （根據資料量）、還原 （根據資料量） 和任何持續儲存費用的費用。為避免持續收費，若還原後不再需要備份，可將其刪除。

如需定價的詳細資訊，請參閱 [AWS Backup 定價](https://aws.amazon.com/backup/pricing/)。

## 步驟 1：啟用 DynamoDB 與跨帳戶備份的進階功能
<a name="bp-migrating-table-between-accounts-backup-enable-advanced-features"></a>

1. 在來源和目標 AWS 帳戶中，存取 AWS 管理主控台並開啟 AWS Backup 主控台。

1. 選取**設定**選項。

1. 在 **Amazon DynamoDB 備份的進階功能**下，確認**進階功能**已啟用。若未啟用，請選取**啟用**。

1. 在**跨帳戶管理**下，針對**跨帳戶備份**，選取**開啟**。

## 步驟 2：在來源帳戶與目標帳戶中建立備份保存庫
<a name="bp-migrating-table-between-accounts-backup-create-backup-vault"></a>

1. 在來源 AWS 帳戶中，開啟 AWS Backup 主控台。

1. 選擇 **Backup vaults (備份文件庫)**。

1. 選擇 **Create backup vault (建立備份文件庫)**。

1. 複製並儲存已建立備份文件庫和目標 AWS 帳戶的 **Amazon Resource Name (ARN)**。

1. 在帳戶間複製 DynamoDB 資料表備份時，您將需要來源與目標備份保存庫的 ARN。

## 步驟 3：在來源帳戶中建立 DynamoDB 資料表備份
<a name="bp-migrating-table-between-accounts-backup-create-table-backup"></a>

1. 在 **AWS 備份儀表板頁面**上，選取**建立隨需備份**。

1. 在**設定**區段中，將 **DynamoDB** 選為**資源類型**，然後選取資料表名稱。

1. 在**備份保存庫**下拉式清單中，選取您於來源帳戶建立的備份保存庫。

1. 選取所需的**保留期間**。

1. 選擇 **Create on-demand backup (建立隨需備份)**。

1. 在**備份任務**頁面的 **AWS 備份任務**分頁上監控備份任務狀態。

## 步驟 4：將 DynamoDB 資料表備份從來源帳戶複製至目標帳戶
<a name="bp-migrating-table-between-accounts-backup-copy-table-backup"></a>

1. 備份任務完成後，在來源帳戶中開啟 AWS Backup 主控台，然後選擇**備份保存庫**。

1. 在**備份項目**下，選擇 DynamoDB 資料表備份。選擇**動作**，再選擇**複製**。

1. 輸入目標帳戶的 AWS 區域。

1. 在**外部保存庫 ARN** 欄位中，輸入您於目標帳戶建立的備份保存庫 ARN。

1.  在目標帳戶的備份保存庫中，啟用來源帳戶的存取權限，以允許複製備份。

## 步驟 5：在目標帳戶中還原 DynamoDB 資料表備份
<a name="bp-migrating-table-between-accounts-restore-table-backup"></a>

1. 在目標 AWS 帳戶中，開啟 AWS Backup 主控台，然後選擇**備份保存庫**

1. 在**備份項目**下，選取從來源帳戶複製的備份。選擇**動作**，再選擇**還原**。

1. 輸入新 DynamoDB 資料表名稱、加密設定、用於加密還原的金鑰與其他設定選項。

1. 還原完成後，資料表狀態將顯示為**作用中**。

# 使用匯出至 S3 並從 S3 匯入的方式移轉資料表
<a name="bp-migrating-table-between-accounts-s3"></a>

**先決條件**
+ 您必須為資料表啟用時間點復原 (PITR)，才能執行匯出至 S3。如需詳細資訊，請參閱[DynamoDB 的時間點復原](PointInTimeRecovery_Howitworks.md)。
+ 具有執行匯出所需的有效 IAM 權限。如需詳細資訊，請參閱[請求在 DynamoDB 中匯出資料表](S3DataExport_Requesting.md)。
+ 具有足以執行匯入的有效 IAM 權限。如需詳細資訊，請參閱[請求在 DynamoDB 中匯入資料表](S3DataImport.Requesting.md)。

**定價資訊**

AWS PITR 的費用 （根據資料表的大小和啟用 PITR 的時間長度）。若僅為匯出啟用 PITR，可在匯出完成後關閉。 AWS 也會針對 S3 請求、匯出資料儲存與匯入作業 (依未壓縮資料大小) 收費。

如需 DynamoDB 定價詳細資訊，請參閱 [DynamoDB 定價](https://aws.amazon.com/dynamodb/pricing/)。

**注意**  
 從 S3 匯入至 DynamoDB 時，物件大小與數量皆有限制。如需詳細資訊，請參閱[匯入配額](S3DataImport.Validation.md#S3DataImport.Validation.limits)。

## 請求將資料表匯出至 Amazon S3
<a name="bp-migrating-table-between-accounts-s3-table-export"></a>

1. 登入 AWS 管理主控台並開啟 DynamoDB 主控台。

1. 在主控台左側的導覽窗格中，選擇 **Exports to S3** (匯出至 S3)。

1. 選擇來源資料表和目的地 S3 儲存貯體。使用 `s3://bucketname/prefix` 格式輸入目標帳戶的儲存貯體 URL。`/prefix` 是可協助整理目的地儲存貯體的選用資料夾。

1. 選取**完整匯出**。完整匯出會在您指定的時間點輸出資料表的完整快照。

   1. 選取**目前時間**以匯出最新的完整資料表快照。

   1. 對於**匯出的檔案格式**，選擇 DynamoDB JSON 和 Amazon Ion 兩者之一。預設為 DynamoDB JSON。

1. 按一下 **Export** (匯出) 按鈕開始匯出。

1. 小型資料表匯出通常在數分鐘內完成，但 TB 級資料表可能需超過一小時。

## 從 Amazon S3 請求匯入資料表
<a name="bp-migrating-table-between-accounts-s3-table-import"></a>

1. 登入 AWS 管理主控台並開啟 DynamoDB 主控台。

1. 在主控台左側的導覽窗格中，選擇 **Import from S3** (從 S3 匯入)。

1. 在出現的頁面上，選取 **Import from S3** (從 S3 匯入)。

1. 輸入 Amazon S3 來源 URL。您也可以使用**瀏覽 S3** 按鈕找到它。預期的路徑格式為 `s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/data/`。

1. 指定您是否為 S3 bucket owner (S3 儲存貯體擁有者)。

1. 在**匯入檔案壓縮**中，選取 **GZIP** 以符合匯出。

1. 在**匯入檔案格式**中，選取 **DynamoDB JSON** 以符合匯出。

1. 選取**下一步**。在**指定資料表詳細資訊**中，選取要建立的新資料表選項以儲存您的資料。

1. 選取**下一步**。在**設定資料表設定**中，如有需要可自訂其他設定。

1. 選擇 **Next** (下一步) 以再次檢視您的匯入選項，然後按一下 **Import** (匯入)，以啟動匯入任務。您會在**從 S3 匯入**下看到新資料表，其狀態為**匯入中**。此期間無法存取資料表。小型匯入通常在數分鐘內完成，但 TB 級資料表可能需超過一小時。

1. 匯入完成後，狀態將顯示為**啟用**，即可開始使用資料表。

## 在移轉期間保持資料表同步
<a name="bp-migrating-table-between-accounts-s3-table-sync"></a>

若能在移轉期間暫停來源資料表的寫入操作，來源與輸出將在移轉後完全一致。若無法暫停寫入操作，移轉後目標資料表通常會落後來源。若要使來源資料表同步，可使用串流 (DynamoDB Streams 或適用於 DynamoDB 的 Kinesis Data Streams) 重播自備份或匯出以來的寫入。

應在將來源資料表匯出至 S3 的時間戳記之前開始讀取串流記錄。例如，若匯出至 S3 發生於下午 2:00，而目標資料表匯入於下午 11:00 完成，應在下午 1:58 啟動 DynamoDB 串流讀取。「變更資料擷取」的串流選項表摘要說明各串流模型的功能。

使用 DynamoDB Streams 搭配 Lambda，可提供精簡的資料同步方法，讓來源與目標 DynamoDB 資料表保持一致。可使用 Lambda 函式重播目標資料表中的每筆寫入。

**注意**  
項目會在 DynamoDB Streams 中保留 24 小時，因此應規劃在此期間內完成備份與還原，或匯出與匯入作業。