img-feed img-feed-email

Data Pump Export (expdp) and Data Pump Import (impdp) Parte-1

Introducción
Data Pump está disponible a partir de la versión Oracle Database 10g. Esta nueva tecnología permite a los DBAs trasferir gran volumen de datos entre bases de datos Oracle y con muy alta velocidad comparada con las anteriores herramientas export/import.

The oracle Data Dump dispone de dos utilidades:
• Data Dump Export que se invoca con expdp.
• Data Dump Import que se invoca con impdp.

De Data Pump export crea archivos conocidos como dumps files los cuales tiene un formato propietario que solo Data Pump Import puede entender.

Data Pump es una tecnología servidor. Por esto, los ficheros dump y log son generados en directorios del servidor oracle. Data Pump requiere objetos directorios que para poder acceder al directorio donde se exportará o importarán los datos.

Por ejemplo para crear un objeto directorio llamado expdp_dir localizado en /u01/backup/exports se ejecutaremos la siguiente instrucción SQL:

SQL> create directory expdp_dir as '/u01/backup/exports';

Una vez creado le daremos permisos de lectura y escritura a los usuarios que usen data pump export y import:

SQL> grant read,write on directory expdp_dir to system, user1, user2;


Invocar Data Pump Export
Data pump export se llama desde la línea de comandos. Los parámetros de exportación puede se especificados directamente en la línea de comandos o a través un ficheros de parámetros creado previamente y llamado con el parámetro PARFILE=mifichero.par.
Modo ‘Full Export’
A full export se especifica usando el parámetro FULL y de este modo la base de datos completa es exportada. Este modo requiere que tengas asignado el rol EXP_FULL_DATABASE. Ejemplo:
$ expdp system/ DIRECTORY=expdp_dir DUMPFILE=expfull.dmp FULL=y LOGFILE=expfull.og

Modo ‘Schema Export’
Se invoca usando el parametro SCHEMAS. Si no tiene el rol EXP_FULL_DATABASE, solo podrás importar de tu propio esquema. Se tienes el rol EXP_FULL_DATABASE podrás exportar de cualquier esquema.
$ expdp hr/hr DIRECTORY=expdp_dir DUMPFILE=schema_exp.dmp SCHEMAS=hr,sh,oe

Modo ‘Table Export’
Este modo se especifica usando el parámetro TABLES. En este modo, solo las tablas especificadas y sus dependencias serán exportadas. Si no tienes el rol EXP_FULL_DATABASE, solo podrás exportar tablas de tu propio esquema.
$ expdp hr/hr DIRECTORY=expdp_dir DUMPFILE=tables_exp.dmp TABLES=employees,jobs,departments

Invocar Data Pump Import
Data pump Import se llama desde la línea de comandos. Los parámetros de exportación puede se especificados directamente en la línea de comandos
Modo Full Import
Carga el contenido completo del fichero dump origen (creado con expdp) en la base de datos destino. Sin embargo, debes tener permisos como IMP_FULL_DATABASE rol y especificar el parámetro FULL=y.

$ impdp system/ DIRECTORY=expdp_dir DUMPFILE=expfull.dmp FULL=y LOGFILE=impfull.og
Schema Import Mode
Se invoca usando el parámetro SCHEMAS. Solo los contenidos del esquema especificado son incorporados en la base de datos. El fichero del ‘dump file’ pueder ser a full, schema-mode, table, o tablespace. Si posees el rol IMP_FULL_DATABASE role, podrás especificar una lista de esquemas a importar en la base de datos destino.

$ impdp hr/hr DIRECTORY=expdp_dir DUMPFILE=expfull.dmp SCHEMAS=hr,sh,oe

Table Import Mode
Es especifica usando el parámetro TABLES. En este modo solo las tablas indicadas y sus dependencias son importadas. Si no tienes el rol IMP_FULL_DATABASE solo podrás importar tablas de tu propio esquema.
$ impdp hr/hr DIRECTORY=expdp_dir DUMPFILE=expfull.dmp TABLES=employees,jobs,departments



PARAMETROS DE FILTRADO DE DATOS.
CONTENT. Permite filtra el contenido a exportar en el fichero dump. Puede tener e valores: ALL, DATA_ONLY, METADATA_ONLY.

$ impdp hr/hr DIRECTORY=expdp_dir DUMPFILE=expfull.dmp CONTENT=DATA_ONLY;

EXCLUDE and INCLUDE.
EXCLUDE permite omitir los objetos especificados en la operación de exportación/exportación.
Format del parámetro EXCLUDE=objete_type:[name_clause]. Ejemplo:

$ impdp hr/hr DIRECTORY=expdp_dir DUMPFILE=expfull.dmp EXCLUDE=TABLE:”LIKE ‘EMP%’;

INCLUDE fuerza la inclusión de solo los objetos especificados. Ejemplos:
INCLUDE=TABLE:”IN (‘EMPLOYEES’, ‘DEPARTMENTS’)”;
INCLUDE=PROCEDURE

QUERY
Este parámetro selecciona las filas que se quiere exportar o importar. Ejemplo:
QUERY=OE.ORDERS: “WHERE order_id >10000”
USO DE FICHEROS de PARÁMETROS con DATA PUMP

Es aconsejable especificar los parámetros dentro de un fichero parámetros, sobre todo cuando se usan en procedimientos repetitivos, complejos o por simple comodidad.
Primer paso ello crear el fichero de texto con una línea por cada parámetro a usar. Por ejemplo creamos el fichero exp.par con el siguiente contenido:

DIRECTORY=DP01
DUMPFILE=HR_dataonly-3.dmp
CONTENT=DATA_ONLY
SCHEMAS=HR,OE
EXCLUDE=TABLE:"IN ('COUNTRIES','LOCATIONS', 'REGIONS')"
QUERY=hr.EMPLOYEES:"WHERE Department_id !=20 ORDER BY employee_id"
FLASHBACK_TIME="TO_TIMESTAMP('15-09-2010 17:22:00', 'DD-MM-YYYY-HH24:MI:SS')

Ahora podemos ejecutar el comando usando el fichero de parámetros que hemos creado:

$ expdp hr/hr PARFILE=exp.par

 
▲ ARRIBA▲