

# INSERT 명령을 사용하여 Db2에서 Amazon RDS for Db2로 데이터 가져오기
<a name="db2-native-db2-tools-insert"></a>

자체 관리형 Db2 서버에서 `INSERT` 명령을 사용하여 Amazon RDS for Db2 데이터베이스에 데이터를 삽입할 수 있습니다. 이 마이그레이션 방식에서는 원격 RDS for Db2 DB 인스턴스의 별명을 사용합니다. 자체 관리형 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 DB 인스턴스를 카탈로그화합니다.

   1. 노드를 카탈로그화합니다. 다음 예제에서 *dns\$1ip\$1address* 및 *port*를 자체 관리형 Db2 데이터베이스의 DNS 이름 또는 IP 주소 및 포트 번호로 대체합니다.

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

   1. 데이터베이스를 카탈로그화합니다. 다음 예제에서 *rds\$1database\$1name*을 RDS for Db2 DB 인스턴스의 데이터베이스 이름으로 바꿉니다.

      ```
      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 DB 인스턴스에 표를 생성합니다.

   1. 노드를 카탈로그화합니다. 다음 예제에서 *dns\$1ip\$1address* 및 *port*를 자체 관리형 Db2 데이터베이스의 DNS 이름 또는 IP 주소 및 포트 번호로 대체합니다.

      ```
      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 DB 인스턴스의 데이터베이스 이름으로 바꿉니다.

      ```
      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 DB 인스턴스의 보안 인증 정보로 대체합니다.

      ```
      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"
   ```