

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

# 使用 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\_ip\_address}} 和 {{port}} 取代為 DNS 名稱或 IP 位址，以及自我管理 Db2 資料庫的連接埠號碼。

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

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

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

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

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

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

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

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

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

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

1. 連接至來源資料庫。在下列範例中，將 {{source\_database\_alias}}、{{user\_id}} 和 {{user\_password}} 取代為您在上一個步驟中建立的別名，以及自我管理 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\_database\_name}} 取代為自我管理 Db2 執行個體上的資料庫名稱。

      ```
      db2 connect to {{source_database_name}}
      ```

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

      ```
      db2 create wrapper drda
      ```

   1. 在聯合資料庫中定義資料來源。在下列範例中，將 {{admin}} 和 {{admin\_password}} 取代為自我管理 Db2 執行個體的憑證。將 {{rds\_database\_name}} 取代為 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\_username}} 和 {{master\_password}} 取代為您 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\_NAME}} 取代為資料表的暱稱和資料表的名稱。

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

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

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