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