

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

# 使用 INSERT 命令將資料從 Db2 匯入 Amazon RDS for Db2
<a name="db2-native-db2-tools-insert"></a>

您可以從自我管理的 Db2 伺服器使用 `INSERT` 命令，將資料插入 Amazon RDS for Db2 資料庫。透過此遷移方法，您可以使用遠端 RDS for Db2 資料庫執行個體的暱稱。您的自我管理 Db2 資料庫 (來源) 必須能夠連線至 RDS for Db2 資料庫 (目標)。

**重要**  
`INSERT` 命令方法適用於遷移小型資料表。如果您的自我管理 Db2 資料庫與 RDS for Db2 資料庫之間的網路頻寬有限，建議您使用不同的遷移方法。如需更多詳細資訊，請參閱 [使用原生 Db2 工具將資料從 Db2 遷移至 Amazon RDS for Db2](db2-native-db2-tools.md)。

**將資料從自我管理的 Db2 資料庫複製到 RDS for Db2 資料庫**

1. 為自我管理 Db2 執行個體上的 RDS for Db2 資料庫執行個體編製目錄。

   1. 為節點編製目錄。在下列範例中，將 *dns\$1ip\$1address* 和 *port* 取代為 DNS 名稱或 IP 位址，以及自我管理 Db2 資料庫的連接埠號碼。

      ```
      db2 catalog tcpip node remnode REMOTE dns_ip_address SERVER port
      ```

   1. 為資料庫編製目錄。在下列範例中，將 *rds\$1database\$1name* 取代為 RDS for Db2 資料庫執行個體上的資料庫名稱。

      ```
      db2 catalog database rds_database_name as remdb at node remnode \
          authentication server_encrypt
      ```

1. 在自我管理的 Db2 執行個體上啟用聯合。在下列範例中，將 *source\$1database\$1name* 取代為自我管理 Db2 執行個體上的資料庫名稱。

   ```
   db2 update dbm cfg using FEDERATED YES source_database_name
   ```

1. 在 RDS for Db2 資料庫執行個體上建立資料表。

   1. 為節點編製目錄。在下列範例中，將 *dns\$1ip\$1address* 和 *port* 取代為 DNS 名稱或 IP 位址，以及自我管理 Db2 資料庫的連接埠號碼。

      ```
      db2 catalog tcpip node srcnode REMOTE dns_ip_address server port
      ```

   1. 為資料庫編製目錄。在下列範例中，將 *source\$1database\$1name* 和 *source\$1database\$1alias* 取代為自我管理 Db2 資料庫的名稱，以及您要用於此資料庫的別名。

      ```
      db2 catalog database source_database_name as source_database_alias at node srcnode \
          authentication server_encrypt
      ```

1. 連接至來源資料庫。在下列範例中，將 *source\$1database\$1alias*、*user\$1id* 和 *user\$1password* 取代為您在上一個步驟中建立的別名，以及自我管理 Db2 資料庫的使用者 ID 和密碼。

   ```
   db2look -d source_database_alias -i user_id -w user_password -e -l -a -f -wlm \
       -cor -createdb -printdbcfg -o db2look.sql
   ```

1. 設定聯合，並在自我管理的 Db2 執行個體上為 RDS for Db2 資料庫資料表建立暱稱。

   1. 連線至本機資料庫 在下列範例中，將 *source\$1database\$1name* 取代為自我管理 Db2 執行個體上的資料庫名稱。

      ```
      db2 connect to source_database_name
      ```

   1.  建立包裝函式以存取 Db2 資料來源。

      ```
      db2 create wrapper drda
      ```

   1. 在聯合資料庫中定義資料來源。在下列範例中，將 *admin* 和 *admin\$1password* 取代為自我管理 Db2 執行個體的憑證。將 *rds\$1database\$1name* 取代為 RDS for Db2 資料庫執行個體上的資料庫之名稱。

      ```
      db2 "create server rdsdb2 type DB2/LUW version '11.5.9.0' \
          wrapper drda authorization "admin" password "admin_password" \
          options( dbname 'rds_database_name', node 'remnode')"
      ```

   1. 映射兩個資料庫上的使用者。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您 RDS for Db2 資料庫執行個體的憑證：

      ```
      db2 "create user mapping for user server rdsdb2 \
          options (REMOTE_AUTHID 'master_username', REMOTE_PASSWORD 'master_password')"
      ```

   1. 驗證 RDS for Db2 伺服器的連線。

      ```
      db2 set passthru rdsdb2
      ```

   1. 在遠端 RDS for Db2 資料庫中為資料表建立暱稱。在下列範例中，將 *NICKNAME* 和 *TABLE\$1NAME* 取代為資料表的暱稱和資料表的名稱。

      ```
      db2 create nickname REMOTE.NICKNAME for RDSDB2.TABLE_NAME.NICKNAME
      ```

1. 將資料插入遠端 RDS for Db2 資料庫中的資料表。在自我管理 Db2 執行個體本機資料表的 `select` 陳述式中使用暱稱。在下列範例中，將 *NICKNAME* 和 *TABLE\$1NAME* 取代為資料表的暱稱和資料表的名稱。

   ```
   db2 "INSERT into REMOTE.NICKNAME select * from RDS2DB2.TABLE_NAME.NICKNAME"
   ```