

# Migrar dados do Db2 por meio do Amazon S3 para o Amazon RDS para Db2
<a name="db2-migration-load-from-s3"></a>

Com essa abordagem de migração, primeiro salve dados de uma única tabela em um arquivo de dados que é colocado em um bucket do Amazon S3. Depois, use o [comando LOAD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load) para carregar os dados desse arquivo em uma tabela no banco de dados do Amazon RDS para Db2. Para ter mais informações sobre como usar o Amazon S3, consulte [Integrar uma instância de banco de dados do Amazon RDS para Db2 ao Amazon S3](db2-s3-integration.md).

**Topics**
+ [Salvar dados no Amazon S3](#db2-migration-load-from-s3-saving-data-file)
+ [Carregar dados em tabelas do RDS para Db2](#db2-migration-load-from-s3-into-db-table)

## Salvar dados no Amazon S3
<a name="db2-migration-load-from-s3-saving-data-file"></a>

Para salvar dados de uma única tabela no Amazon S3, use um utilitário de banco de dados para extrair os dados do sistema de gerenciamento de banco de dados (DBMS) em um arquivo CSV. Depois, faça upload de cada arquivo de dados no Amazon S3.

Para armazenar arquivos de dados no Amazon S3, são necessários os seguintes componentes da AWS:
+ *Um bucket do Amazon S3 para armazenar arquivos de backup*: se você já tiver um bucket do S3, poderá usá-lo. Se você não tiver um bucket do S3, consulte [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) no *Guia do usuário do Amazon S3*.
+ *Um perfil do IAM para acessar o bucket do S3*: se você já tem um perfil do IAM, pode usá-lo. Se não tiver um perfil, consulte [Etapa 2: Criar um perfil do IAM e associar a política do IAM](db2-s3-integration.md#db2-creating-iam-role). 
+ *Uma política do IAM com relações de confiança e permissões anexadas ao perfil do IAM*: consulte mais informações em [Etapa 1: criar uma política do IAM](db2-s3-integration.md#db2-creating-iam-policy).
+ *O perfil do IAM adicionado à instância de banco de dados do RDS para Db2*: consulte mais informações em [Etapa 3: Adicionar o perfil do IAM à instância de banco de dados do RDS para Db2](db2-s3-integration.md#db2-adding-iam-role).

## Carregar dados em tabelas do RDS para Db2
<a name="db2-migration-load-from-s3-into-db-table"></a>

Depois de salvar os arquivos de dados no Amazon S3, é possível carregar os dados desses arquivos em tabelas individuais na instância de banco de dados do RDS para Db2.

**Como carregar dados da tabela do Db2 na tabela do banco de dados do RDS para Db2**

1. Conecte-se ao banco de dados `rdsadmin` 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. Catalogue um alias de acesso ao armazenamento que aponte para o bucket do Amazon S3 onde os arquivos salvos são armazenados. Anote o nome desse alias para uso na próxima etapa. Só é necessário realizar essa etapa uma vez se planeja carregar várias tabelas de arquivos de dados armazenados no mesmo bucket do Amazon S3.

   O exemplo a seguir cataloga um alias chamado *my\$1s3\$1alias*, que concede a um usuário chamado *jorge\$1souza* acesso a um bucket denominado *amzn-s3-demo-bucket*.

   ```
   db2 "call rdsadmin.catalog_storage_access(?, 'my_s3_alias', 'amzn-s3-demo-bucket', 'USER', 'jorge_souza')"
   ```

   Para ter mais informações sobre esse procedimento armazenado, consulte [rdsadmin.catalog\$1storage\$1access](db2-sp-managing-storage-access.md#db2-sp-catalog-storage-access).

1. Execute o comando `LOAD` usando o alias de acesso ao armazenamento que aponta para o bucket do Amazon S3. 
**nota**  
Se o comando `LOAD` gerar um erro, talvez seja necessário criar um endpoint de gateway da VPC para o Amazon S3 e adicionar regras de saída ao grupo de segurança. Para obter mais informações, consulte [Erro de E/S de arquivo](db2-troubleshooting.md#db2-file-input-output-error).

   O exemplo a seguir carrega dados de um arquivo chamado *my\$1s3\$1datafile.csv* em uma tabela chamada *my\$1db2\$1table*. O exemplo pressupõe que o arquivo de dados esteja no bucket do Amazon S3 para o qual o alias chamando *my\$1s3\$1alias* aponta.

   ```
   db2 "load from db2remote://my_s3_alias//my_s3_datafile.csv of DEL insert into my_db2_table";
   ```

   O exemplo a seguir carrega LOBs de um arquivo de dados chamado *my\$1table1\$1export.ixf* em uma tabela denominada *my\$1db2\$1table*. O exemplo pressupõe que o arquivo de dados esteja no bucket do Amazon S3 para o qual o alias chamando *my\$1s3\$1alias* aponta.

   ```
   db2 "call sysproc.admin_cmd('load from "db2remote://my_s3_alias//my_table1_export.ixf" of ixf
           lobs from "db2remote://my_s3_alias//" xml from "db2remote://my_s3_alias//"
           modified by lobsinfile implicitlyhiddeninclude identityoverride generatedoverride periodoverride transactionidoverride
           messages on server
           replace into "my_schema"."my_db2_table"
                                  nonrecoverable
           indexing mode incremental allow no access')"
   ```

   Repita essa etapa para cada arquivo de dados do bucket do Amazon S3 que você deseja carregar em uma tabela na instância de banco de dados do RDS para Db2.

   Para ter mais informações sobre o comando `LOAD`, consulte [Comando LOAD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load).