

# Migración de datos de Db2 mediante Amazon S3 a Amazon RDS para Db2
<a name="db2-migration-load-from-s3"></a>

Con este enfoque de migración, primero debe guardar datos desde una sola tabla en un archivo de datos que debe colocar en un bucket de Amazon S3. A continuación, utilice el [comando LOAD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load) para cargar los datos de ese archivo de datos en una tabla de la base de datos de Amazon RDS para Db2. Para obtener más información sobre cómo usar Amazon S3, consulte [Integración de una instancia de base de datos de Amazon RDS para Db2 con Amazon S3](db2-s3-integration.md).

**Topics**
+ [Guardado de datos en Amazon S3](#db2-migration-load-from-s3-saving-data-file)
+ [Carga de datos en tablas de RDS para Db2](#db2-migration-load-from-s3-into-db-table)

## Guardado de datos en Amazon S3
<a name="db2-migration-load-from-s3-saving-data-file"></a>

Para guardar datos de una sola tabla en Amazon S3, emplee una utilidad de base de datos para extraer los datos del sistema de administración de bases de datos (DBMS) en un archivo CSV. A continuación, cargue el archivo de datos en Amazon S3.

Para almacenar archivos de datos en Amazon S3, necesita los siguientes componentes de:AWS
+ *Un bucket de Amazon S3 para almacenar los archivos de copia de seguridad*: si ya tiene un bucket de S3, puede utilizar ese bucket. Si no tiene un bucket de S3, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en la *Guía de usuario de Amazon S3*.
+ *Un rol de IAM para acceder al bucket de S3*: si ya tiene un rol de IAM, puede usar ese rol. Si no dispone de un rol, consulte [Paso 2: crear un rol de IAM y asociar la política de IAM](db2-s3-integration.md#db2-creating-iam-role). 
+ *Una política de IAM con relaciones de confianza y permisos asociados a su rol de IAM*: para obtener más información, consulte [Paso 1: Crear una política de IAM](db2-s3-integration.md#db2-creating-iam-policy).
+ *El rol de IAM agregado a su instancia de base de datos de RDS para Db2*: para obtener más información, consulte [Paso 3: agregar su rol de IAM a su instancia de base de datos de RDS para Db2](db2-s3-integration.md#db2-adding-iam-role).

## Carga de datos en tablas de RDS para Db2
<a name="db2-migration-load-from-s3-into-db-table"></a>

Tras guardar los archivos de datos en Amazon S3, puede cargar los datos de estos archivos en tablas individuales de su instancia de base de datos de RDS para Db2.

**Carga de datos de la tabla de Db2 en la tabla de base de datos de RDS para Db2**

1. Conéctese a la base de datos `rdsadmin` con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituya *master\$1username* y *master\$1password* por su propia información.

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

1. Catalogue un alias de acceso al almacenamiento que apunte al bucket de Amazon S3 donde se almacenan los archivos guardados. Anote el nombre de este alias para utilizarlo en el paso siguiente. Solo necesita realizar este paso una vez si tiene pensado cargar varias tablas de archivos de datos almacenados en el mismo bucket de Amazon S3.

   En el siguiente ejemplo, se cataloga un alias denominado *my\$1s3\$1alias* que concede acceso a un usuario llamado *jorge\$1souza* a un bucket denominado *amzn-s3-demo-bucket*.

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

   Para obtener más información acerca de este procedimiento, consulte [rdsadmin.catalog\$1storage\$1access](db2-sp-managing-storage-access.md#db2-sp-catalog-storage-access).

1. Ejecute el comando `LOAD` con el alias de acceso al almacenamiento que apunta a su bucket de Amazon S3. 
**nota**  
Si el comando `LOAD` devuelve un error, es posible que deba crear un punto de conexión de puerta de enlace de VPC para Amazon S3 y agregar reglas de salida al grupo de seguridad. Para obtener más información, consulte [Error de E/S de archivos](db2-troubleshooting.md#db2-file-input-output-error).

   En el siguiente ejemplo, se cargan los datos de un archivo de datos denominado *my\$1s3\$1datafile.csv* en una tabla denominada *my\$1db2\$1table.* En el ejemplo, se supone que el archivo de datos está en el bucket de Amazon S3 al que apunta el alias denominado *my\$1s3\$1alias*.

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

   En el siguiente ejemplo, se cargan LOB de un archivo de datos denominado *my\$1table1\$1export.ixf* en una tabla denominada *my\$1db2\$1table*. En el ejemplo, se supone que el archivo de datos está en el bucket de Amazon S3 al que apunta el alias denominado *my\$1s3\$1alias*.

   ```
   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 este paso para cada archivo de datos del bucket de Amazon S3 que desee cargar en una tabla de la instancia de base de datos de RDS para Db2.

   Para obtener más información sobre el comando `LOAD`, consulte [LOAD command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load).