

# Importar dados do Db2 para o Amazon RDS para Db2 com o comando INSERT
<a name="db2-native-db2-tools-insert"></a>

É possível usar o comando `INSERT` de um servidor do Db2 autogerenciado para inserir os dados em um banco de dados do Amazon RDS para Db2. Com essa abordagem de migração, é usado um apelido para a instância de banco de dados do RDS para Db2 remota. O banco de dados do Db2 autogerenciado (origem) deve ser capaz de se conectar ao banco de dados do RDS para Db2 (destino).

**Importante**  
O método de comando `INSERT` é útil para migrar tabelas pequenas. Se a largura de banda da rede entre o banco de dados do Db2 autogerenciado e o banco de dados do RDS para Db2 for limitada, recomendamos usar uma abordagem de migração diferente. Para ter mais informações, consulte [Usar ferramentas nativas do Db2 para migrar dados do Db2 para o Amazon RDS para Db2](db2-native-db2-tools.md).

**Como copiar dados de um banco de dados do Db2 autogerenciado em um banco de dados do RDS para Db2**

1. Catalogue a instância de banco de dados do RDS para Db2 na instância do Db2 autogerenciado. 

   1. Catalogue o nó. No exemplo a seguir, substitua {{dns\_ip\_address}} 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 remnode REMOTE {{dns_ip_address}} SERVER {{port}}
      ```

   1. Catalogue o banco de dados. No exemplo a seguir, substitua {{rds\_database\_name}} pelo nome do banco de dados na instância de banco de dados do RDS para Db2.

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

1. Habilite a federação na instância do Db2 autogerenciado. No exemplo a seguir, substitua {{source\_database\_name}} pelo nome do banco de dados na instância de banco de dados do Db2 autogerenciado.

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

1. Crie tabelas na instância de banco de dados do RDS para Db2.

   1. Catalogue o nó. No exemplo a seguir, substitua {{dns\_ip\_address}} 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\_database\_name}} e {{source\_database\_alias}} 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\_database\_alias}}, {{user\_id}} e {{user\_password}} 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. Configure a federação e crie um apelido para a tabela de banco de dados do RDS para Db2 na instância do Db2 autogerenciado.

   1. Conecte-se ao banco de dados local. No exemplo a seguir, substitua {{source\_database\_name}} pelo nome do banco de dados na instância do Db2 autogerenciado.

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

   1.  Crie um wrapper para acessar fontes de dados do Db2.

      ```
      db2 create wrapper drda
      ```

   1. Defina uma fonte de dados em um banco de dados federado. No exemplo a seguir, substitua {{admin}} e {{admin\_password}} pelas credenciais da instância do Db2 autogerenciado. Substitua {{rds\_database\_name}} pelo nome do banco de dados na instância de banco de dados do RDS para 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. Associe os usuários nos dois bancos de dados. No exemplo a seguir, substitua {{master\_username}} e {{master\_password}} pelas credenciais da instância de banco de dados do RDS para Db2.

      ```
      db2 "create user mapping for user server rdsdb2 \
          options (REMOTE_AUTHID '{{master_username}}', REMOTE_PASSWORD '{{master_password}}')"
      ```

   1. Verifique a conexão com o servidor RDS para Db2. 

      ```
      db2 set passthru rdsdb2
      ```

   1. Crie um apelido para a tabela no banco de dados remoto do RDS para Db2. No exemplo a seguir, substitua {{NICKNAME}} e {{TABLE\_NAME}} por um apelido para a tabela e o nome da tabela.

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

1. Insira dados na tabela no banco de dados remoto do RDS para Db2. Use o apelido em uma declaração `select` na tabela local na instância do Db2 autogerenciado. No exemplo a seguir, substitua {{NICKNAME}} e {{TABLE\_NAME}} por um apelido para a tabela e o nome da tabela.

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