

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Migración de una base de datos de Oracle en las instalaciones a Amazon RDS para Oracle mediante Oracle Data Pump
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump"></a>

*Mohan Annam y Brian Motzer, Amazon Web Services*

## Resumen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-summary"></a>

Este patrón describe cómo migrar una base de datos de Oracle de un centro de datos en las instalaciones a una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) para Oracle mediante Oracle Data Pump. 

El patrón implica crear un archivo de volcado de datos a partir de la base de datos de origen, almacenar el archivo en un bucket de Amazon Simple Storage Service (Amazon S3) y, a continuación, restaurar los datos en una instancia de base de datos de Amazon RDS para Oracle. Este patrón resulta útil cuando se encuentra con limitaciones al utilizar AWS Database Migration Service (AWS DMS) para la migración. 

## Requisitos previos y limitaciones
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Los permisos necesarios para crear roles en AWS Identity and Access Management (IAM) y para la carga multiparte a Amazon S3
+ Los permisos necesarios para exportar datos desde la base de datos de origen
+ Interfaz de la línea de comandos de AWS (AWS CLI) [instalada](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y [configurada](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**Versiones de producto**
+ Oracle Data Pump solo está disponible para Oracle Database 10g, versión 1 (10.1) y versiones posteriores.

## Arquitectura
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-architecture"></a>

**Pila de tecnología de origen**
+ Bases de datos de Oracle en las instalaciones

**Pila de tecnología de destino**
+ Amazon RDS para Oracle
+ Cliente SQL (desarrollador de Oracle SQL)
+ Un bucket de S3

**Arquitectura de origen y destino**

![\[Carga multiparte de Amazon S3 desde una base de datos de Oracle en las instalaciones a Amazon RDS mediante Oracle Data Pump.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/d8d6e00f-753e-4ecc-80e5-e60e279a699b/images/1bb6095a-0a95-4469-be0e-7b7bd59b35ae.png)


## Tools (Herramientas)
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-tools"></a>

**Servicios de AWS**
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos. En este patrón, la IAM se utiliza para crear los roles y políticas necesarios para migrar datos de Amazon S3 a Amazon RDS para Oracle.
+ [Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) le ayuda a configurar, utilizar y escalar una base de datos relacional de Oracle en la nube de AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

**Otras herramientas**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) le ayuda a trasladar datos y metadatos de una base de datos a otra a altas velocidades. En este patrón, Oracle Data Pump se utiliza para exportar el archivo de volcado de datos (.dmp) al servidor de Oracle e importarlo a Amazon RDS para Oracle. Para obtener más información, consulte [Importación de datos a Oracle en Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3) en la documentación de Amazon RDS.
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) es un entorno de desarrollo integrado que simplifica el desarrollo y la administración de bases de datos de Oracle, tanto en implementaciones tradicionales como en implementaciones basadas en la nube. Interactúa con la base de datos de Oracle en las instalaciones y con Amazon RDS para Oracle para ejecutar los comandos SQL necesarios para exportar e importar datos.

## Epics
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-epics"></a>

### Creación de un bucket de S3
<a name="create-an-s3-bucket"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear el bucket. | Para crear el bucket de S3, siga las instrucciones que figuran en la [Documentación de AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Administrador de sistemas de AWS | 

### Crear el rol de IAM y asignar políticas
<a name="create-the-iam-role-and-assign-policies"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configurar los permisos de IAM. | Para configurar los permisos, siga las instrucciones que figuran en la [Documentación de AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing). | Administrador de sistemas de AWS | 

### Crear la instancia de base de datos de Amazon RDS para Oracle y asociar el rol de integración de Amazon S3
<a name="create-the-target-amazon-rds-for-oracle-db-instance-and-associate-the-amazon-s3-integration-role"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear la instancia de la base de datos de destino de Amazon RDS para Oracle. | Para crear la instancia de Amazon RDS para Oracle, siga las instrucciones que figuran en la [Documentación de AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html). | Administrador de sistemas de AWS | 
| Asociar el rol con la instancia de base de datos. | Para asociar el rol a la instancia, siga las instrucciones que figuran en la [Documentación de AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing.instance). | Administrador de base de datos | 

### Crear el usuario de la base de datos en la base de datos de destino
<a name="create-the-database-user-on-the-target-database"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el usuario. | Conectarse a la base de datos de destino de Amazon RDS para Oracle desde Oracle SQL Developer o SQL\$1Plus y ejecutar el siguiente comando SQL para crear el usuario al que importar el esquema.<pre>create user SAMPLE_SCHEMA identified by <PASSWORD>;<br />grant create session, resource to <USER NAME>;<br />alter user <USER NAME> quota 100M on users;</pre> | Administrador de base de datos | 

### Crear el archivo de exportación a partir de la base de datos de Oracle de origen
<a name="create-the-export-file-from-the-source-oracle-database"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un archivo de volcado de datos. | Para crear un archivo de volcado con el nombre `sample.dmp` indicado en el directorio `DATA_PUMP_DIR` para exportar al usuario `SAMPLE_SCHEMA`, utilice el siguiente script.<pre>DECLARE<br />    hdnl NUMBER;<br />BEGIN<br />    hdnl := dbms_datapump.open(operation => 'EXPORT', <br />                                job_mode => 'SCHEMA', <br />                                job_name => NULL);<br /><br />    dbms_datapump.add_file( handle => hdnl, <br />                            filename => 'sample.dmp', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />    dbms_datapump.add_file(handle => hdnl, <br />                            filename => 'export.log', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_log_file);<br /><br />    dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')');  <br /><br />    dbms_datapump.start_job(hdnl);<br />END;<br />/</pre>Revise los detalles de la exportación revisando el archivo `export.log` en su directorio `DATA_PUMP_DIR` local.  | Administrador de base de datos | 

### Cargue el archivo de volcado en el bucket de S3
<a name="upload-the-dump-file-to-the-s3-bucket"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cargar el archivo de volcado de datos desde el origen hasta el bucket de S3. | Ejecute el siguiente comando utilizando AWS CLI.<pre>aws s3 cp sample.dmp s3://<bucket_created_epic_1>/</pre> | Administrador de base de datos | 

### Descargar el archivo de exportación del bucket de S3 en la instancia de RDS
<a name="download-the-export-file-from-the-s3-bucket-to-the-rds-instance"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Descargar el archivo de volcado de datos en Amazon RDS | Para copiar el archivo de volcado `sample.dmp` desde el bucket de S3 hasta la base de datos de Amazon RDS para Oracle, ejecute el siguiente comando SQL. En este ejemplo, el archivo `sample.dmp` se descarga del bucket de S3 `my-s3-integration1` al directorio de Oracle `DATA_PUMP_DIR`. Asegúrese de tener suficiente espacio en el disco asignado a la instancia de RDS para alojar tanto la base de datos como el archivo de exportación.<pre>-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line.<br /><br />SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(<br />      p_bucket_name    =>  'my-s3-integration',    <br />      p_s3_prefix => 'sample.dmp',<br />      p_directory_name =>  'DATA_PUMP_DIR') <br />   AS TASK_ID FROM DUAL;</pre>El comando anterior genera un ID de tarea. Para revisar el estado de la descarga mediante la revisión de los datos en el ID de tarea, ejecute el siguiente comando.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));<br /><br /></pre>Para ver los archivos en el directorio `DATA_PUMP_DIR`, ejecute el comando siguiente en el directorio.<pre>SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp<br />FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre> | Administrador de sistemas de AWS | 

### Importar el archivo de volcado a la base de datos de destino
<a name="import-the-dump-file-into-the-target-database"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Restaurar el esquema y los datos en Amazon RDS. | Para importar el archivo de volcado al esquema de la base de datos `sample_schema`, ejecute el siguiente comando SQL desde SQL Developer o SQL\$1Plus.<pre>DECLARE<br />hdnl NUMBER;<br />BEGIN<br /><br />hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle    => hdnl, filename  => 'import.log', directory => 'DATA_PUMP_DIR', filetype  => dbms_datapump.ku$_file_type_log_file);<br /><br />DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')');<br /><br />DBMS_DATAPUMP.START_JOB(hdnl);<br /><br />END;<br />/</pre>Para ver el archivo de registro de la importación, ejecute el siguiente comando.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));</pre> | Administrador de base de datos | 

### Eliminar el archivo de volcado del directorio DATA\$1PUMP\$1DIR
<a name="remove-the-dump-file-from-the-data_pump_dir-directory"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Enumerar y limpiar los archivos de exportación. | Para enumerar y eliminar los archivos de exportación en el directorio `DATA_PUMP_DIR`, ejecute los siguientes comandos.<pre>-- List the files<br />SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre><pre>-- Remove the files<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp');<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');</pre> | Administrador de sistemas de AWS | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-resources"></a>
+ [Integración de Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)
+ [Crear una instancia de base de datos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html)
+ [Importación de datos a Oracle en Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3) 
+ [Documentación de Amazon S3](https://docs.aws.amazon.com/s3/index.html)
+ [documentación de IAM](https://docs.aws.amazon.com/iam/index.html)
+ [Documentación de Amazon RDS](https://docs.aws.amazon.com/rds/index.html)
+ [Documentación de Oracle Data Pump](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html)
+ [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/)