# Como migrar una base on-premise a AWS (RDS oracle) mediante un export/import

1. Realizar un export de la base on-premise.
    
2. El o los archivos resultantes (dmp) subirlos al storage S3 de amazon. Esto se puede realizar desde la consola de AWS.
    
3. Transferir el o los archivos dmps hacia el servidor de base de datos utilizando el procedimiento **download\_from\_s3**, que devolverá un **ID**.
    

```sql
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
    p_bucket_name => '<nombre_bucket>',
    p_directory_name => 'DATA_PUMP_DIR') 
AS TASK_ID FROM DUAL;
```

4. Con el **ID** del punto anterior, verificar que la tarea haya terminado bien con la siguiente consulta
    

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

5. Realizar la importación de los esquemas deseados
    

```sql
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;
/
```

6. Verificar el log del import ejecutando la siguiente consulta
    

```sql
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.
