Esto no es un procedimiento en sí sino una guía que yo he seguido en una situación concreta, pero que guardo aquí como futura referencia por si necesito recordar rapidamente algunos comandos.

A veces los desarrolladores pueden pedir que añada en una base de datos Oracle un dump generado externamente. Dado que normalmente no tengo datos de la base de datos remota lo primero que hago es crear un tablespace y usuario dedicados para este nuevo contenid en un entorno de desarrollo/test.

Además inicialmente para que el dump no falle le daré permisos de dba que luego le quitaré:

CREATE SMALLFILE TABLESPACE “PROJECT” DATAFILE ‘/oradata/db1/file_1.dbf’ SIZE 768M , ‘/oradata/db2/file_2.dbf’ SIZE 768M , ‘/oradata/db3/file_3.dbf’ SIZE 768M , ‘/oradata/db4/file_4.dbf’ SIZE 768M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

CREATE USER userproject IDENTIFIED BY *pass_project* DEFAULT TABLESPACE “project” TEMPORARY TABLESPACE “TMP”

GRANT connect, resource, dba to userproject;

A continuación hago un sencillo impdp para ver los posibles errores que requieran nuevos usuarios, remapeos de tablespace,…

sqlplus userproject/*pass_project*
create or replace directory my_directory as ‘/transfer’;

impdp userproject/*pass_project* DIRECTORY=my_directory DUMPFILE=fichero.dmp LOGFILE=fichero.log PARALLEL=4

Los errores obtenidos han sido del tipo:

Failing sql is:
CREATE USER “TESTER” IDENTIFIED BY VALUES ‘********’ DEFAULT TABLESPACE “TEST_TS” TEMPORARY TABLESPACE “TEMP”

Con eso creo el usuario:

CREATE USER tester IDENTIFIED BY VALUES ‘*******’ DEFAULT TABLESPACE “PROJECT” TEMPORARY TABLESPACE “TMP”

Y en la siguiente ejecución han aparecido errores del tipo:

ORA-00959: tablespace ‘TEST_USERS’ does not exist
ORA-00959: tablespace ‘TEST_GLS’ does not exist
ORA-00959: tablespace ‘TEST_TS’ does not exist

Finalmente configuro la ejecución de forma que haga el remapeo de los tablespaces que no deben estar. En la última ejecución sólo han fallado las vistas materializadas que por ahora se reconfiguran a parte, y el error lo ignoro:

impdp userproject/*pass_project* DIRECTORY=my_directory DUMPFILE=fichero.dmp LOGFILE=fichero.log PARALLEL=4 REMAP_TABLESPACE=USERS:PROJECT REMAP_TABLESPACE=TEST_USERS:PROJECT REMAP_TABLESPACE=TEST_TS:PROJECT REMAP_TABLESPACE=TEST_GLS:PROJECT

PROJECT