

# Copiar metadados do banco de dados do Db2 para o Amazon RDS para Db2 com db2look
<a name="db2-native-db2-tools-db2look"></a>

`db2look` é uma ferramenta nativa do Db2 que extrai arquivos, objetos, autorizações, configurações, WLM e layouts de banco de dados da linguagem de definição de dados (DDL). É possível usar o `db2look` para copiar metadados de um banco de dados do Db2 autogerenciado para um banco de dados do Amazon RDS para Db2. Para ter mais informações, consulte [Mimicking databases using db2look](https://www.ibm.com/docs/en/db2/11.5?topic=tools-db2look) na documentação do IBM Db2.

**Como copiar os metadados do banco de dados**

1. Execute a ferramenta `db2look` no sistema do Db2 autogerenciado para extrair o arquivo DDL. No exemplo a seguir, substitua *database\$1name* pelo nome do banco de dados do Db2.

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

1. Se a máquina cliente tiver acesso ao banco de dados de origem (Db2 autogerenciado) e à instância de banco de dados do RDS para Db2, será possível criar o arquivo `db2look.sql` na máquina cliente conectando-se diretamente à instância remota. Depois, catalogue a instância remota autogerenciada do Db2.

   1. Catalogue o nó. No exemplo a seguir, substitua *dns\$1ip\$1address* e *port* pelo nome do DNS ou pelo endereço IP e pelo número da porta do banco de dados do Db2 autogerenciado.

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

   1. Catalogue o banco de dados. No exemplo a seguir, substitua *source\$1database\$1name* e *source\$1database\$1alias* pelo nome do banco de dados do Db2 autogerenciado e pelo alias a ser utilizado para esse banco de dados.

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

   1. Associe ao banco de dados de origem. No exemplo a seguir, substitua *source\$1database\$1alias*, *user\$1id* e *user\$1password* pelo alias que você criou na etapa anterior e pelo ID de usuário e senha do banco de dados do Db2 autogerenciado.

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

1. Se você não conseguir acessar o banco de dados do Db2 autogerenciado remoto da máquina cliente, copie o arquivo `db2look.sql` para a máquina cliente. Depois, catalogue a instância de banco de dados do RDS para Db2. 

   1. Catalogue o nó. No exemplo a seguir, substitua *dns\$1ip\$1address* e *port* pelo nome do DNS ou pelo endereço IP e pelo número da porta da instância de banco de dados do RDS para Db2.

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

   1. Catalogue o banco de dados. No exemplo a seguir, substitua *rds\$1database\$1name* e *rds\$1database\$1alias* pelo nome do banco de dados do RDS para Db2 e pelo alias a ser utilizado para esse banco de dados.

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

   1. Catalogue o banco de dados administrativo que gerencia o RDS para Db2. Não é possível usar esse banco de dados para armazenar dados.

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

1. Crie grupos de buffer e espaços de tabela. O administrador não tem privilégios para criar grupos de buffer nem espaços de tabela. No entanto, é possível usar procedimentos armazenados do Amazon RDS para criá-los.

   1. Encontre os nomes e as definições dos grupos de buffer e dos espaços de tabela no arquivo `db2look.sql`.

   1. Conecte-se ao Amazon RDS usando o nome de usuário principal e a senha mestra da instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua *master\$1username* e *master\$1password* por suas próprias informações.

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

   1. Crie um grupo de buffers chamando `rdsadmin.create_bufferpool`. Para ter mais informações, consulte [rdsadmin.create\$1bufferpool](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. Crie um espaço de tabela chamando `rdsadmin.create_tablespace`. Para ter mais informações, consulte [rdsadmin.create\$1tablespace](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. Repita as etapas c ou d para cada grupo de buffers ou espaço de tabela extra que você deseja adicionar.

   1. Encerre a conexão.

      ```
      db2 terminate
      ```

1. Crie tabelas e objetos.

   1. Conecte-se ao banco de dados do RDS para Db2 usando o nome de usuário principal e a senha mestra da instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua *rds\$1database\$1name*, *master\$1username* e *master\$1password* por suas próprias informações.

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

   1. Execute o arquivo `db2look.sql`.

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

   1. Encerre a conexão.

      ```
      db2 terminate
      ```