impdp con cambio de tablespace

La costumbre de la exportacion e impotacion con la base de datos Oracle se basaba en el uso de los comandos exp e imp respectivamente. Estos comando tienen cambios en la version 11g, que segun la documentación ayudan a la performance de Oracle, por ejemplo en la version Enterprise de Oracle Database el comando exp, no exporta las tablas cuando estas no tienen registros debido a que no tienen espacio asignado, por lo que hay que hacer un truco para que estas se puedan exportar.

Se crearon para esta versión los comando expdp e impdp, que se utilizan “casi” de la misma forma que los tradicionales, ejemplo de exportacion

expdp schemas=scott directory=export dumpfile=backup.dmp logfile=backup.log compression=all

En este caso export es un directorio que previamente debe ser creado en oracle de la siguiente forma

$ sqlplus /nolog 
SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 17 13:39:30 2012
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> create or replace directory export as '/opt/oracle/data';
Directory created.
SQL> grant read, write on directory export to GPI;
Grant succeeded.
SQL> exit

Para luego hacer la importacion.

 impdp user/password@sid directory=export dumpfile=backup.dmp logfile=backup.log 

Que en muchos de los casos es suficiente, pero para algunos como yo, que tiene ordenado cada usuario con su respectivo tablespace tiene la necesidad de “remapear” los tablespace de a los existentes dentro de la instancia actual añadiendo la clausula REMAP_TABLESPACE

 impdp user/password@sid directory=export dumpfile=backup1.dmp logfile=backup.log remap_tablespace=TS_SCHEMA_SDAT:SCHEMA_DAT,TS_SCHEMA_SIDX:SCHEMA_IND
Publicado en Base de Datos, Desarrollo, Oracle