

# 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\$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 remnode REMOTE dns_ip_address SERVER port
      ```

   1. Catalogue o banco de dados. No exemplo a seguir, substitua *rds\$1database\$1name* 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\$1database\$1name* 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\$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. 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\$1database\$1name* 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\$1password* pelas credenciais da instância do Db2 autogerenciado. Substitua *rds\$1database\$1name* 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\$1username* e *master\$1password* 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\$1NAME* 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\$1NAME* por um apelido para a tabela e o nome da tabela.

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