Como migrar una base on-premise a AWS (RDS oracle) mediante un export/import
Realizar un export de la base on-premise.
El o los archivos resultantes (dmp) subirlos al storage S3 de amazon. Esto se puede realizar desde la consola de AWS.
Transferir el o los archivos dmps hacia el servidor de base de datos utilizando el procedimiento download_from_s3, que devolverá un ID.
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
p_bucket_name => '<nombre_bucket>',
p_directory_name => 'DATA_PUMP_DIR')
AS TASK_ID FROM DUAL;
- Con el ID del punto anterior, verificar que la tarea haya terminado bien con la siguiente consulta
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<ID>.log'));
- Realizar la importación de los esquemas deseados
DECLARE v_hdnl NUMBER;
BEGIN
v_hdnl := DBMS_DATAPUMP.OPEN(
operation => 'IMPORT',
job_mode => 'SCHEMA',
job_name => '<nombre_job>');
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => '<dumpfile>.dmp',
directory => 'DATA_PUMP_DIR',
filetype => dbms_datapump.ku$_file_type_dump_file);
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => '<nombre_archivo_log>.log',
directory => 'DATA_PUMP_DIR',
filetype => dbms_datapump.ku$_file_type_log_file);
DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','LIKE ''VT%''');
DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
- Verificar el log del import ejecutando la siguiente consulta
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','<nombre_archivo_log>.log'));
Hasta el próximo post 🙂
Saludos desde Buenos Aires, Argentina.

