

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

# 透過 Amazon S3 將 Db2 資料遷移至 Amazon RDS for Db2
<a name="db2-migration-load-from-s3"></a>

若使用此遷移方法，您會先將資料從單一資料表儲存到放置在 Amazon S3 儲存貯體中的資料檔案中。然後，您可以使用 [LOAD 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load)，將資料從該資料檔案載入 Amazon RDS for Db2 資料庫中的資料表。如需使用 Amazon S3 的詳細資訊，請參閱 [整合 Amazon RDS for Db2 資料庫執行個體和 Amazon S3](db2-s3-integration.md)

**Topics**
+ [在 Amazon S3 中儲存您的資料](#db2-migration-load-from-s3-saving-data-file)
+ [將資料載入 RDS for Db2 資料表](#db2-migration-load-from-s3-into-db-table)

## 在 Amazon S3 中儲存您的資料
<a name="db2-migration-load-from-s3-saving-data-file"></a>

若要將資料從單一資料表儲存至 Amazon S3，請使用資料庫公用程式，將資料從資料庫管理系統 (DBMS) 擷取至 CSV 檔案。然後，將資料檔案上傳至 Amazon S3。

若要在 Amazon S3 上儲存資料檔案，您需要下列 AWS 元件：
+ *存放備份檔案的 Amazon S3 儲存貯體*：如果您已有 S3 儲存貯體，則可以使用該儲存貯體。如果您沒有 S3 儲存貯體，請參閱《Amazon S3 使用者指南》**中的[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。
+ *存取 S3 儲存貯體的 IAM 角色*：如果您已有 IAM 角色，則可以使用該角色。如果您沒有角色，請參閱 [步驟 2：建立 IAM 角色並附加您的 IAM 政策](db2-s3-integration.md#db2-creating-iam-role)。
+ *將信任關係和許可連接至 IAM 角色的 IAM 政策*：如需詳細資訊，請參閱 [步驟 1：建立 IAM 政策](db2-s3-integration.md#db2-creating-iam-policy)。
+ *新增至 RDS for Db2 資料庫執行個體的 IAM 角色*：如需詳細資訊，請參閱 [步驟 3：將您的 IAM 角色新增至 RDS for Db2 資料庫執行個體](db2-s3-integration.md#db2-adding-iam-role)。

## 將資料載入 RDS for Db2 資料表
<a name="db2-migration-load-from-s3-into-db-table"></a>

將資料檔案儲存至 Amazon S3 之後，您可以將這些資料從這些檔案載入 RDS for Db2 資料庫執行個體上的個別資料表。

**將 Db2 資料表資料載入 RDS for Db2 資料庫的資料庫資料表**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 {{master\_username}} 和 {{master\_password}} 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user {{master_username}} using {{master_password}}
   ```

1. 將指向儲存檔案之 Amazon S3 儲存貯體的儲存存取別名編製目錄。請記下此別名的名稱，以便在下一個步驟中使用。如果您計劃從存放在相同 Amazon S3 儲存貯體中的資料檔案載入多個資料表，則只需要執行此步驟一次。

   下列範例會將名為 {{my\_s3\_alias}} 的別名編目，以授予名為 {{jorge\_souza}} 的使用者存取名為 {{amzn-s3-demo-bucket}} 的儲存貯體。

   ```
   db2 "call rdsadmin.catalog_storage_access(?, '{{my_s3_alias}}', '{{amzn-s3-demo-bucket}}', 'USER', '{{jorge_souza}}')"
   ```

   如需此預存程序的詳細資訊，請參閱 [rdsadmin.catalog\_storage\_access](db2-sp-managing-storage-access.md#db2-sp-catalog-storage-access)。

1. 使用指向 Amazon S3 儲存貯體的儲存存取別名來執行 `LOAD` 命令。
**注意**  
如果 `LOAD` 命令傳回錯誤，則您可能需要為 Amazon S3 建立 VPC 閘道端點，並將傳出規則新增至安全群組。如需詳細資訊，請參閱[檔案 I/O 錯誤](db2-troubleshooting.md#db2-file-input-output-error)。

   下列範例會將資料從名為 {{my\_s3\_datafile.csv}} 的資料檔案載入名為 {{my\_db2\_table}} 的資料表。此範例假設資料檔案位於名為 {{my\_s3\_alias}} 之別名所指向的 Amazon S3 儲存貯體中。

   ```
   db2 "load from db2remote://{{my_s3_alias}}//{{my_s3_datafile.csv}} of DEL insert into {{my_db2_table}}";
   ```

   下列範例會將名為 {{my\_table1\_export.ixf}} 的資料檔案中的 LOB 載入名為 {{my\_db2\_table}} 的資料表。此範例假設資料檔案位於名為 {{my\_s3\_alias}} 之別名所指向的 Amazon S3 儲存貯體中。

   ```
   db2 "call sysproc.admin_cmd('load from "db2remote://{{my_s3_alias}}//{{my_table1_export.ixf}}" of ixf
           lobs from "db2remote://{{my_s3_alias}}//" xml from "db2remote://{{my_s3_alias}}//"
           modified by lobsinfile implicitlyhiddeninclude identityoverride generatedoverride periodoverride transactionidoverride
           messages on server
           replace into "{{my_schema}}"."{{my_db2_table}}"
                                  nonrecoverable
           indexing mode incremental allow no access')"
   ```

   針對要載入 RDS for Db2 資料庫執行個體中資料表之 Amazon S3 儲存貯體中的每個資料檔案，重複此步驟。

   如需 `LOAD` 命令的詳細資訊，請參閱 [LOAD 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load)。