

# 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\_ip\_address}} 및 {{port}}를 자체 관리형 Db2 데이터베이스의 DNS 이름 또는 IP 주소 및 포트 번호로 대체합니다.

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

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

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

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

      ```
      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 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\_username}} 및 {{master\_password}}를 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\_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}}"
   ```