Migre una base de datos Oracle local a Amazon RDS for Oracle mediante Oracle Data Pump - Recomendaciones de AWS

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.

Migre una base de datos Oracle local a Amazon RDS for Oracle mediante Oracle Data Pump

Creado por Mohan Annam (AWS) y Brian motzer () AWS

Entorno: PoC o piloto

Origen: bases de datos: relacionales

Objetivo: Amazon RDS para Oracle

Tipo R: redefinir la plataforma

Carga de trabajo: Oracle

Tecnologías: Migración; bases de datos

AWSservicios: Amazon RDS

Resumen

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

El patrón consiste en 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 RDS Amazon for Oracle. Este patrón resulta útil cuando se encuentran limitaciones al utilizar AWS Database Migration Service (AWSDMS) para la migración.

Requisitos previos y limitaciones

Requisitos previos 

  • Una AWS cuenta activa

  • Los permisos necesarios para crear funciones en AWS Identity and Access Management (IAM) y para una carga multiparte en Amazon S3

  • Los permisos necesarios para exportar datos desde la base de datos de origen

  • AWSInterfaz de línea de comandos (AWSCLI) instalada y configurada

Versiones de producto

  • Oracle Data Pump solo está disponible para Oracle Database 10g, versión 1 (10.1) y versiones posteriores.

Arquitectura

Pila de tecnología de origen

  • Bases de datos de Oracle en las instalaciones

Pila de tecnología de destino

  • Amazon RDS para Oracle

  • SQLcliente (SQLdesarrollador de Oracle)

  • Un bucket de S3

Arquitectura de origen y destino

Carga multiparte de Amazon S3 desde una base de datos Oracle local a Amazon RDS mediante Oracle Data Pump.

Herramientas

AWSservicios

Otras herramientas

  • Oracle Data Pump 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 y para importarlo a Amazon RDS for Oracle. Para obtener más información, consulte Importación de datos a Oracle on Amazon RDS en la RDS documentación de Amazon.

  • Oracle SQL Developer es un entorno de desarrollo integrado que simplifica el desarrollo y la gestión de las bases de datos de Oracle en despliegues tradicionales y basados en la nube. Interactúa con la base de datos Oracle local y con Amazon RDS for Oracle para ejecutar los SQL comandos necesarios para exportar e importar datos.

Epics

TareaDescripciónHabilidades requeridas

Crear el bucket.

Para crear el bucket de S3, siga las instrucciones de la documentación. AWS

AWSadministrador de sistemas
TareaDescripciónHabilidades requeridas

Configure IAM los permisos.

Para configurar los permisos, siga las instrucciones de la AWSdocumentación.

AWSadministrador de sistemas
TareaDescripciónHabilidades requeridas

Cree la instancia de base de datos Amazon RDS for Oracle de destino.

Para crear la instancia de Amazon RDS for Oracle, siga las instrucciones de la AWSdocumentación.

AWSadministrador de sistemas

Asociar el rol con la instancia de base de datos.

Para asociar el rol a la instancia, siga las instrucciones de la AWSdocumentación.

DBA
TareaDescripciónHabilidades requeridas

Cree el usuario.

Conéctese a la base de datos Amazon RDS for Oracle de destino desde Oracle SQL Developer o SQL *Plus y ejecute el siguiente SQL comando para crear el usuario al que importar el esquema.

create user SAMPLE_SCHEMA identified by <PASSWORD>; grant create session, resource to <USER NAME>; alter user <USER NAME> quota 100M on users;
DBA
TareaDescripciónHabilidades 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.

DECLARE hdnl NUMBER; BEGIN hdnl := dbms_datapump.open(operation => 'EXPORT', job_mode => 'SCHEMA', job_name => NULL); dbms_datapump.add_file( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file); dbms_datapump.add_file(handle => hdnl, filename => 'export.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')'); dbms_datapump.start_job(hdnl); END; /

Revise los detalles de la exportación revisando el archivo export.log en su directorio DATA_PUMP_DIR local.

DBA
TareaDescripciónHabilidades requeridas

Cargar el archivo de volcado de datos desde el origen hasta el bucket de S3.

Ejecute AWS CLI el siguiente comando mediante el siguiente comando.

aws s3 cp sample.dmp s3://<bucket_created_epic_1>/
DBA
TareaDescripciónHabilidades requeridas

Descarga el archivo de volcado de datos en Amazon RDS

Para copiar el archivo sample.dmp de volcado del bucket de S3 a la base de datos de Amazon RDS for Oracle, ejecute el siguiente SQL comando. 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 disco asignado a la RDS instancia para alojar tanto la base de datos como el archivo de exportación.

-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line. SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => 'my-s3-integration', p_s3_prefix => 'sample.dmp', p_directory_name => 'DATA_PUMP_DIR') AS TASK_ID FROM DUAL;

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.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));

Para ver los archivos en el directorio DATA_PUMP_DIR, ejecute el comando siguiente en el directorio.

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;
AWSadministrador de sistemas
TareaDescripciónHabilidades requeridas

Restaure el esquema y los datos en AmazonRDS.

Para importar el archivo de volcado al esquema de la sample_schema base de datos, ejecute el siguiente SQL comando desde SQL Developer o SQL *Plus.

DECLARE hdnl NUMBER; BEGIN hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'import.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')'); DBMS_DATAPUMP.START_JOB(hdnl); END; /

Para ver el archivo de registro de la importación, ejecute el siguiente comando.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));
DBA
TareaDescripciónHabilidades 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.

-- List the files 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;
-- Remove the files EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp'); EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');
AWSadministrador de sistemas

Recursos relacionados