

# db2look을 사용하여 Db2에서 Amazon RDS for Db2로 데이터베이스 메타데이터 복사
<a name="db2-native-db2-tools-db2look"></a>

`db2look`은 데이터 정의 언어(DDL) 파일, 객체, 권한, 구성, WLM 및 데이터베이스 레이아웃을 추출하는 기본 Db2 도구입니다. `db2look`을 사용하여 자체 관리형 Db2 데이터베이스의 데이터베이스 메타데이터를 Amazon RDS for Db2 데이터베이스로 복사할 수 있습니다. 자세한 내용은 IBM Db2 설명서의 [db2look을 사용한 데이터베이스 모방](https://www.ibm.com/docs/en/db2/11.5?topic=tools-db2look)을 참조하세요.

**데이터베이스 메타데이터를 복사하려면**

1. 자체 관리형 Db2 시스템에서 `db2look` 도구를 실행하여 DDL 파일을 추출합니다. 다음 예제에서 {{database\_name}}을 Db2 데이터베이스 이름으로 바꿉니다.

   ```
   db2look -d {{database_name}} -e -l -a -f -wlm -cor -createdb -printdbcfg -o db2look.sql
   ```

1. 클라이언트 머신이 소스(자체 관리형 Db2) 데이터베이스 및 RDS for Db2 DB 인스턴스에 액세스할 수 있는 경우 원격 인스턴스에 직접 연결하여 클라이언트 머신에 `db2look.sql` 파일을 생성할 수 있습니다. 그런 다음 원격 자체 관리형 Db2 인스턴스를 카탈로그화합니다.

   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 데이터베이스에 액세스할 수 없는 경우 `db2look.sql` 파일을 클라이언트 머신에 복사합니다. 그런 다음 RDS for Db2 DB 인스턴스를 카탈로그화합니다.

   1. 노드를 카탈로그화합니다. 다음 예제에서 {{dns\_ip\_address}} 및 {{port}}를 RDS for Db2 DB 인스턴스의 DNS 이름 또는 IP 주소 및 포트 번호로 대체합니다.

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

   1. 데이터베이스를 카탈로그화합니다. 다음 예제에서 {{rds\_database\_name}} 및 {{rds\_database\_alias}}를 RDS for Db2 데이터베이스의 이름과 이 데이터베이스에 사용할 별칭으로 바꿉니다.

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

   1. RDS for Db2를 관리하는 관리 데이터베이스를 카탈로그화합니다. 데이터를 저장하는 데는 이 데이터베이스를 사용할 수 없습니다.

      ```
      db2 catalog database rdsadmin as rdsadmin at node remnode authentication server_encrypt
      ```

1. 버퍼 풀과 테이블스페이스를 생성합니다. 관리자는 버퍼 풀이나 테이블스페이스를 생성할 권한이 없습니다. 하지만 Amazon RDS 저장 프로시저를 사용하여 생성할 수는 있습니다.

   1. `db2look.sql` 파일에서 버퍼 풀과 테이블스페이스의 이름과 정의를 찾습니다.

   1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 Amazon RDS에 연결합니다. 다음 예제에서 {{master\_username}} 및 {{master\_password}}를 사용자 자체 정보로 대체합니다.

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

   1. `rdsadmin.create_bufferpool`을 호출하여 버퍼 풀을 생성합니다. 자세한 내용은 [rdsadmin.create\_bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-create-buffer-pool) 단원을 참조하십시오.

      ```
      db2 "call rdsadmin.create_bufferpool(
          '{{database_name}}', 
          '{{buffer_pool_name}}', 
          {{buffer_pool_size}}, 
          '{{immediate}}', 
          '{{automatic}}', 
          {{page_size}}, 
          {{number_block_pages}}, 
          {{block_size}})"
      ```

   1. `rdsadmin.create_tablespace`를 호출하여 테이블스페이스를 생성합니다. 자세한 내용은 [rdsadmin.create\_tablespace](db2-sp-managing-tablespaces.md#db2-sp-create-tablespace) 단원을 참조하십시오.

      ```
      db2 "call rdsadmin.create_tablespace(
          '{{database_name}}', 
          '{{tablespace_name}}',
          '{{buffer_pool_name}}', 
          {{tablespace_initial_size}}, 
          {{tablespace_increase_size}}, 
          '{{tablespace_type}}')"
      ```

   1. 추가하려는 각 추가 버퍼 풀 또는 테이블스페이스에 대해 c 또는 d 단계를 반복합니다.

   1. 연결을 종료합니다.

      ```
      db2 terminate
      ```

1. 표와 객체를 생성합니다.

   1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 RDS for Db2 데이터베이스에 연결합니다. 다음 예제에서 {{rds\_database\_name}}, {{master\_username}}, {{master\_password}}를 사용자 자체 정보로 바꿉니다.

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

   1. `db2look.sql` 파일을 실행합니다.

      ```
      db2 -tvf db2look.sql
      ```

   1. 연결을 종료합니다.

      ```
      db2 terminate
      ```