Migración de datos de Db2 mediante Amazon S3 a Amazon RDS para Db2
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
Guardado de datos en Amazon S3
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 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.
-
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.
-
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.
Carga de datos en tablas de RDS para Db2
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
-
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, sustituyamaster_username
ymaster_password
por su propia información.db2 connect to rdsadmin user
master_username
usingmaster_password
-
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_s3_alias
que concede acceso a un usuario llamadojorge_souza
a un bucket denominadoamzn-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_storage_access.
-
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.En el siguiente ejemplo, se cargan los datos de un archivo de datos denominado
my_s3_datafile.csv
en una tabla denominadamy_db2_table.
En el ejemplo, se supone que el archivo de datos está en el bucket de Amazon S3 al que apunta el alias denominadomy_s3_alias
.db2 "load from db2remote://
my_s3_alias
//my_s3_datafile.csv
of DEL insert intomy_db2_table
";En el siguiente ejemplo, se cargan LOB de un archivo de datos denominado
my_table1_export.ixf
en una tabla denominadamy_db2_table
. En el ejemplo, se supone que el archivo de datos está en el bucket de Amazon S3 al que apunta el alias denominadomy_s3_alias
.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.