f?:@'.$&2& %g&1'210*%a'*5% h&$02'$$%!5&102$%!,ij ·...

6
Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 [email protected] - www.autentia.com Somos su empresa de Soporte a Desarrollo Informático. Ese apoyo que siempre quiso tener... 1. Desarrollo de componentes y proyectos a medida Tecnología Desarrollo Sistemas Gran Empresa Producción autentia Certificación o Pruebas Verificación previa RFP Concurso Consultora 1 Consultora 2 Consultora 3 Equipo propio desarrollo Piloto 3a 3b 1. Definición de frameworks corporativos. 2. Transferencia de conocimiento de nuevas arquitecturas. 3. Soporte al arranque de proyectos. 4. Auditoría preventiva periódica de calidad. 5. Revisión previa a la certificación de proyectos. 6. Extensión de capacidad de equipos de calidad. 7. Identificación de problemas en producción. 3. Arranque de proyectos basados en nuevas tecnologías ¿Qué ofrece Autentia Real Business Solutions S.L? Para más información visítenos en: www.autentia.com Compartimos nuestro conociemiento en: www.adictosaltrabajo.com Gestor portales (Liferay) Gestor de contenidos (Alfresco) Aplicaciones híbridas Tareas programadas (Quartz) Gestor documental (Alfresco) Inversión de control (Spring) BPM (jBPM o Bonita) Generación de informes (JasperReport) ESB (Open ESB) Control de autenticación y acceso (Spring Security) UDDI Web Services Rest Services Social SSO SSO (Cas) Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery JPA-Hibernate, MyBatis Motor de búsqueda empresarial (Solr) ETL (Talend) Dirección de Proyectos Informáticos. Metodologías ágiles Patrones de diseño TDD 2. Auditoría de código y recomendaciones de mejora 4. Cursos de formación (impartidos por desarrolladores en activo)

Upload: others

Post on 12-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · 2015-05-04 · Como comentamos en la introducción Data Pump Export es la utilidad de Oracle para la exportación de datos y metadatos

Avenida de Castilla,1 - Edificio Best Point - Oficina 21B28830 San Fernando de Henares (Madrid)

tel./fax: +34 91 675 33 [email protected] - www.autentia.com

Somos su empresa de Soporte a Desarrollo Informático.Ese apoyo que siempre quiso tener...

1. Desarrollo de componentes y proyectos a medida

TecnologíaDesarrolloSistemas

Gran Empresa

Producción

autentia

Certificacióno Pruebas

Verificación previa

RFP Concurso

Consultora 1

Consultora 2

Consultora 3

Equipo propio desarrolloPiloto

3a

3b

1. Definición de frameworks corporativos.2. Transferencia de conocimiento de nuevas arquitecturas.3. Soporte al arranque de proyectos.4. Auditoría preventiva periódica de calidad.5. Revisión previa a la certificación de proyectos.6. Extensión de capacidad de equipos de calidad.7. Identificación de problemas en producción.

3. Arranque de proyectos basados en nuevas tecnologías

¿Qué ofrece Autentia Real Business Solutions S.L?

Para más información visítenos en: www.autentia.com

Compartimos nuestro conociemiento en: www.adictosaltrabajo.com

Gestor portales (Liferay)Gestor de contenidos (Alfresco)Aplicaciones híbridas

Tareas programadas (Quartz)Gestor documental (Alfresco)Inversión de control (Spring)

BPM (jBPM o Bonita)Generación de informes (JasperReport)ESB (Open ESB)

Control de autenticación y acceso (Spring Security)UDDIWeb ServicesRest ServicesSocial SSOSSO (Cas)

Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery

JPA-Hibernate, MyBatisMotor de búsqueda empresarial (Solr)ETL (Talend)

Dirección de Proyectos Informáticos.Metodologías ágilesPatrones de diseñoTDD

2. Auditoría de código y recomendaciones de mejora

4. Cursos de formación (impartidos por desarrolladores en activo)

Page 2: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · 2015-05-04 · Como comentamos en la introducción Data Pump Export es la utilidad de Oracle para la exportación de datos y metadatos

3/2/2015 Oracle - Exportación de Datos con Data Pump Export [expdp]

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=tutorialExpdp 1/6

Entra en Adictos a través de

Entrar

E­mail

Contraseña

RegistrarmeOlvidé mi contraseña

Inicio Quiénes somos Formación Comparador de salarios Nuestros libros Más

» Estás en: Inicio Tutoriales Oracle ­ Exportación de Datos con Data Pump Export [expdp]

Síguenos a través

de:

Catálogo de servicios

Autentia

Últimas Noticias

» 2015: ¡Volvemos a la oficina!

» Curso JBoss de Red Hat

» Si eres el responsable o lídertécnico, considératedesafortunado. No puedesculpar a nadie por ser gris

» Portales, gestores decontenidos documentales ydesarrollos a medida

» Comentando el libro Start­upNation, La historia del milagroeconómico de Israel, de DanSenor & Salu Singer

Histórico de noticias

Últimos Tutoriales

» Flexibilidad laboral: mejoraspara empleados y empresarios

» Instalación de un entornoHadoop con Ambari en AWS

» Política de reintentos conSpring Retry

» Guía para entender y usarexpresiones regulares

» Instalación de Alfresco 5.0.csobre Vagrant

Ver todos los tutoriales del autor

Carlos García de Marcos

Consultor tecnológico de desarrollo de proyectos informáticos.

Ingeniero en Informática, especialidad en Ingeniería del Software.

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría yformación

Somos expertos en Java/J2EE

Fecha de publicación del tutorial: 2015­02­03 Tutorial visitado 2 veces Descargar en PDF

Oracle ­ Exportación de Datos con Data Pump Export

[expdp]

0. Índice de contenidos.

1. Entorno2. Introducción3. Preparación del entorno4. Comando expdp5. Algunos ejemplos6. Más información

1. Entorno

Para realizar este tutorial se ha empleado el siguiente entorno de desarrollo:

Hardware: Mac Book Pro 15" Intel Core i7 2,8 GHz, 16 GB RAMSistema Operativo: Mac OS X YosemiteMáquina virtual VirtualBox versión 4.3.20: Sistema operativo: Windows 7 Ultimate 32bits 2GB RAMOracle Database 11g Release 11.2.0.1.0

2. Introducción

A partir de la versión 10g, Oracle incluye nuevas utilidades para importar y exportar datos mucho más potente que losanteriores comandos imp y exp.

En este tutorial quiero revisar la herramienta de exportación Oracle Data Pump Export y sus parámetros más comunes. Conesta herramienta podemos realizar exportaciones de datos y metadatos de nuestras bases de datos Oracle, permitiéndonosestablecer filtros muy finos respecto a los objetos y datos a exportar.

Hay que tener en cuenta que, aunque se trate de una evolución de la anterior herramienta de exportación exp, son comandostotalmente distintos. Si generamos la exportación con el comando exp, tendremos que emplear el comando imp y si lageneramos con expdp, lo tendremos que importar con impdp.

3. Preparación del entorno

Para los ejemplos de este tutorial vamos a crear un usuario en la base de datos y a generar dos tablas con suscorrespondientes datos. El script de creación es el siguiente:

1234567891011

C:>sqlplus system/**** SQL> CREATE TABLESPACE demoexp_tbs DATAFILE 'c:/oracle/oradata/orcl/demoexp.dbf' size 10M; SQL> CREATE USER demoexp IDENTIFIED BY demoexp DEFAULT TABLESPACE demoexp_tbs SQL> GRANT ALL PRIVILEGES TO demoexp; SQL> connect demoexp/demoexp SQL> CREATE TABLE TABLA01 (

?

Page 3: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · 2015-05-04 · Como comentamos en la introducción Data Pump Export es la utilidad de Oracle para la exportación de datos y metadatos

3/2/2015 Oracle - Exportación de Datos con Data Pump Export [expdp]

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=tutorialExpdp 2/6

La operación de exportación la realizará el motor de Oracle, por lo que es necesario que el usuario de Oracle con el quevamos a realizarla, demoexp, tenga acceso al directorio del sistema de ficheros destino. Para ello, deberemos crear un objetoDIRECTORY que apunte al directorio destino y asignar permisos de READ y WRITE sobre el directorio para el usuario.

Por simplificar el proceso, crearemos el directorio con el usuario demoexp directamente de forma que, al ser creador del objetoDIRECTORY, ya tenga los privilegios de lectura y escritura.

4. Comando expdp

Como comentamos en la introducción Data Pump Export es la utilidad de Oracle para la exportación de datos y metadatos.

El comando asociado es el 'expdp' y recibe una serie de parámetros para especificar de forma detallada qué datos ymetadamos queremos exportar.

Estos parámetros pueden ser proporcionados de tres formas:

Por línea de comandos, pasados como parámetros al comado expdpMediante un fichero de parámetrosMediante un interfaz de comandos interactivo

En este tutorial nos vamos a centrar en el segundo modo, estableciendo un fichero de parámetros, por ser el modorecomendado, sobre todo si se desea establecer filtros. Para indicarle a expdp el fichero con los parámetros emplearemos elparámetro parfile:

Así, crearemos un fichero export.par en el directorio de exportación c:/tmp/demo/export

El contenido básico del fichero será:

Donde:

USERID será el usuario que realizará la exportación. En nuestro caso será demoexp

DIRECTORY será el objeto DIRECTORY que hemos creado previamente en oracle y que apunta al directorio deexportación.DUMPFILE definirá el nombre del fichero de exportación.LOGFILE definirá el fichero de trazas con el detalle de la exportación

Otros parámetros que podemos emplear en la exportación son los siguientes:

Métodos de Exportación: expdp soporta los siguientes métodos de exportación:Full export mode: Este método exporta la base de datos completa. Requiere que el usuario tenga el rolEXP_FULL_DATABASE. Para establecer este modo, habrá que incluir el siguiente parámetro al fichero:

Schema mode: Éste es el modo por defecto. Con este modo el usuario podrá especificar uno o varios esquemasa exportar. Si el usuario desea exportar un esquema distinto del suyo, deberá disponer del rolEXP_FULL_DATABASE. Para establecer este módo, se indicará en el fichero de propiedades con el siguienteparámetro:

Table mode: En este caso, se especificará un conjunto de tablas a exportar. Se exportarán tanto las tablas comosus objetos dependientes: particiones, índices, triggers, constraints, etc. Al igual que en los otros modos, si sedesea exportar tablas de esquemas distintos al del usuario, éste deberá disponer del rolEXP_FULL_DATABASE. Para especificar las tablas a exportar, estableceremos el siguiente parámetro en elfichero de configuración:

Todas las tablas deben pertenecer al mismo esquema. Si no se indica el esquema, se tomará por defecto el del

1213141516171819202122232425262728293031323334353637383940

CAMPO1_1 NUMBER(10), CAMPO1_2 VARCHAR2(10), CAMPO1_3 TIMESTAMP, CAMPO1_4 CLOB); SQL> CREATE UNIQUE INDEX tabla01_idx ON TABLA01(CAMPO1_1); SQL> CREATE TABLE TABLA2 ( CAMPO2_1 NUMBER(10), CAMPO2_2 VARCHAR2(10)); SQL> INSERT INTO TABLA01 VALUES(1, 'Prueba 01', SYSDATE, 'Campo CLOB muy muy largo ­ Campo CLOB muy muy largo ­ Campo CLOB muy muy largo ­ Campo CLOB muy muy largo ­ Campo CLOB muy muy largo ­ Campo CLOB muy muy largo ... '); SQL> INSERT INTO TABLA01 VALUES(2, 'Prueba 02', SYSDATE, 'Campo CLOB 2');SQL> INSERT INTO TABLA01 VALUES(3, 'Prueba 03', SYSDATE, 'Campo CLOB 3');SQL> INSERT INTO TABLA01 VALUES(4, 'Prueba 04', SYSDATE, 'Campo CLOB 4');SQL> INSERT INTO TABLA01 VALUES(5, 'Prueba 05', SYSDATE, 'Campo CLOB 5');SQL> INSERT INTO TABLA01 VALUES(6, 'Prueba 06', SYSDATE, 'Campo CLOB 6');SQL> INSERT INTO TABLA01 VALUES(7, 'Prueba 07', SYSDATE, 'Campo CLOB 7');SQL> INSERT INTO TABLA01 VALUES(8, 'Prueba 08', SYSDATE, 'Campo CLOB 8'); SQL> INSERT INTO TABLA02 VALUES (1, 'Prueba 21');SQL> INSERT INTO TABLA02 VALUES (2, 'Prueba 22');SQL> INSERT INTO TABLA02 VALUES (3, 'Prueba 23');SQL> INSERT INTO TABLA02 VALUES (4, 'Prueba 24');SQL> INSERT INTO TABLA02 VALUES (5, 'Prueba 25');SQL> INSERT INTO TABLA02 VALUES (6, 'Prueba 26');

1234

C:>mkdir c:/tmp/demoC:>mkdir c:/tmp/demo/exportC:>sqlplus demoexp/demoexp SQL>CREATE DIRECTORY dir_demoexp_dmp as 'c:/tmp/demo/export/';

1 C:/tmp/demo>expdp ­parfile export.par

1234

USERID=demoexpDIRECTORY=dir_demoexp_dmpDUMPFILE=export_demo.dmpLOGFILE=export.log

1 FULL=Y

1 SCHEMAS=esquema01 [, ...]

1 TABLES=[esquema.]tabla[:particion] [, ...]

?

?

?

?

?

?

Page 4: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · 2015-05-04 · Como comentamos en la introducción Data Pump Export es la utilidad de Oracle para la exportación de datos y metadatos

3/2/2015 Oracle - Exportación de Datos con Data Pump Export [expdp]

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=tutorialExpdp 3/6

usuario que realiza la exportación.

Oracle permite establecer nombres de tablas con comodines. Sería válido por ejemplo especificar

exportando así tanto la tabla01, como la tabla02.

Tablespace mode: En este caso se exportarán todas las tablas pertenecientes a un determinado tablespace asícomo todos sus objetos dependientes. El usuario deberá disponer dle rol EXP_FULL_DATABASE para pdoerexportar tablas pertenecientes a otros esquemas, si no, únicamente podrá exportar las tablas de su esquema queestén asociadas al tablespace indicado. Se especificará de la siguiente manera:

CONTENT: Medienta el parámetro CONTENT podremos especificar si queremos exportar únicamente los metadatos,los datos o ambas cosas:

VERSION: Con VERSION podremos especificar la versión de oracle que se empleará a la hora de exportar los objetos.Esto permite realizar una exportación en una base de datos Oracle 11g indicándole una version=10.0 para luegoimportar el resultado en una base de datos Oracle 10g. La Versión se establecerá de la siguiente manera:

donde:COMPATIBLE: es el valor por defecto. Estableciendo esta versión, se tomará el valor indicado en base de datosen el parámetro de oracle COMPATIBLE. Para conocer este valor podemos ejecutar la siguiente query:

LATEST: con esta opción los metadatos se generarán con la versión de la base de datos.version_string: También se puede establecer directamente el número de versión con que queramos que seangenerados los metadatos.

Nota: Algunos parámetros no están soportados en determinadas versiones de oracle y requieren establecer una versiónde compatibilidad mínima.

SAMPLE: Con el parámetro SAMPLE podremos exportar únicamente un determinado porcentaje de bloques de datosde cada una de las tablas. Este parámetro podría ser útil para aquellos casos en que realizamos la exportación de unentorno de producción para pasarlo al entorno de desarrollo y queremos tener algunos datos de orientación. Esteparámetro se especifica de la siguiente manera:

En caso de no especificarse ninguna tabla, se aplicará el parámetro a todas las tabals exportadas.

REUSE_DUMPFILES: con este parámetro podemos indicar si queremos sobreescribir o no ficheros dmp anteriores conigual nombre que el indicado en el parámetro DUMPFILE. Por defecto no se reutilizan.

ESTIMATE_ONLY: Si establecemos este parámetro, expdp estimará el espacio que la exportación puede consumir,pero no realizará la operación de exportación en sí.

Hay que tener en cuenta que cuando establecemos el parámetro ESTIMATE_ONLY no debemos indicar un DUMPFILE,ya que no es compatible, ni podemos filtrar los datos a exportar. Por defecto la estimación se realiza por bloques. Si sequiere basar en estadísticas, habrá que especificar el parámetro ESTIMATE=statistics

ESTIMATE: mediante este parámetro indicaremos si las estimaciones se han de realizar por bloques o por estadísticas:

Estimación por bloques: La estimación se calcula multiplicando el número de bloques de base de datosempleados por los objetos orígenes por el tamaño de bloque apropiado.Estimación por estadística: La estimación se realiza empleando las estadísticas de cada tabla, por lo que esrecomendable que las estadísticas de las tablas estén lo más actualizadas posibles.

Así, el formtao de este parámetro es el siguiente:

INCLUDE y EXCLUDE:

Mediante estos parámetro podremos establecer los objetos a incluir o excluir de la exportación. Son parámetrosexcluyentes, con lo que no pueden emplearse ambos a la vez. Para evitar sorpresas y conseguir exportar exactamentelo que queremos, debemos tener en mente que expdp siempre exporta todos los objetos dependientes, de forma que siestamos exportando un índice, también serán incluidas en la exportación sus estadísticas, o si excluimos una tabla,también estaremos excluyendo sus objetos asociados: índices, particiones, constraints, grants y triggers. De igual forma,si establecemos varios filtros sobre un mismo objeto de la base de datos, entoneces se aplicarán todos como siestuvieran unidos por el operador lógico AND.

Los objetos que pueden ser filtrados dependerán del modo de exportación establecido. Podemos ver los posiblesobjetos mediante las siguientes queries:

Full Mode:

Schema Mode:

Table Mode:

La sintaxis de los parámetros es la siguiente:

La claúsula name_clause es opcional y permite establecer un filtro mucho más fino permitiendo especificar objetos deltipo indicado. Irá separada del tipo de objeto por un : y se establecerá con doble comillas, ya que los objetos iránespecificados con comida simple. En la claúsula podremos emplear operadores IN, LIKE y comodines. Aquí van algunos

1 TABLES=tabla%

1 TABLESPACES=tbs01 [,...]

1 CONTENT= ALL | DATA_ONLY | METADATA_ONLY

1 VERSION= COMPATIBLE | LATEST | version_string

1 SQL> SELECT name, value FROM v$parameter WHERE name = 'compatible';

1 SAMPLE=[[esquema.]tabla:]porcentaje

1 REUSE_DUMPFILES=Y|N

1 ESTIMATE_ONLY= Y | N

1 ESTIMATE= BLOCKS | STATISTICS

1 SQL> SELECT object_path, comments FROM database_export_objects ;

1 SQL> SELECT object_path, comments FROM schema_export_objects;

1 SQL>SELECT object_path, comments FROM table_export_objects ;

12

INCLUDE=object_type[:name_clause] [, ... ]EXCLUDE=object_type[:name_clause] [, ... ]

?

?

?

?

?

?

?

?

?

?

?

?

?

Page 5: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · 2015-05-04 · Como comentamos en la introducción Data Pump Export es la utilidad de Oracle para la exportación de datos y metadatos

3/2/2015 Oracle - Exportación de Datos con Data Pump Export [expdp]

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=tutorialExpdp 4/6

ejemplos válidos:

El funcionamiento es idéntico con EXCLUDE

QUERY: este parámetro permite filtrar los datos de las tablas a exportar. Se trata de una cláusula WHERE. Su sintaxises:

Si no se especifica tabla, se aplicará la clausula WHERE a todas las tablas. Por ejemplo:

5. Algunos Ejemplos.

Una vez tenemos el modelo de datos y el directorio preparado y hemos revisado el comando, veamos un par de ejemplos.

Si lo que queremos es exportar el esquema de DEMOEXP completo, estableceremos el siguiente fichero de parámetros:

Ejecutamos el comando con el fichero de parámetros:

Si quisiéramos tomar únicamente la tabla01 (excluyendo la tabla02) y de esa tabla tomar únicamente las tres primeras filas,por ejemplo, tendríamos que añadir los siguientes parámetros:

Establecemos también el parámetro REUSE_DUMPFILES para que no nos dé problemas si existe previamente el ficheroindicado en DUMPFILE. Ejecutando de nuevo el comando

tendremos:

Como se puede ver en las trazas, en este caso únicamente se ha exportado la tabla01 y de las 8 filas que tenía se hanexportado únicamente 3.

Si lo que queremos es estimar el tamaño de la exportación, ejecutaremos el comando con los siguientes parámetros:

Esto nos dará la estimación por bloques:

12

INCLUDE=TABLE:" IN ('TABLA01', 'TABLA02')"INCLUDE=INDEX:"LIKE '%_IDX'"

1 QUERY='[esquema.][tabla:] "query_clause"''

12

QUERY='tabla01:"WHERE campo1 < 3"'QUERY='"WHERE ROWNUM < 10"'

12345

USERID=demoexpDIRECTORY=dir_demoexp_dmpDUMPFILE=export_demo.dmpLOGFILE=log_export.logSCHEMAS=DEMOEXP

1 C:\tmp\demo\export>expdp ­parfile export.par

123

EXCLUDE=TABLE:'' IN ('TABLA02')''QUERY='TABLA01:"WHERE ROWNUM < 4 "'REUSE_DUMPFILES=Y

1 expdp ­parfile export.par

123456

USERID=demoexpDIRECTORY=dir_demoexp_dmpLOGFILE=log_export.logSCHEMAS=DEMOEXPVERSION=11.2ESTIMATE_ONLY=Y

?

?

?

?

?

?

?

?

Page 6: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · 2015-05-04 · Como comentamos en la introducción Data Pump Export es la utilidad de Oracle para la exportación de datos y metadatos

3/2/2015 Oracle - Exportación de Datos con Data Pump Export [expdp]

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=tutorialExpdp 5/6

Esta obra está licenciada bajo licencia Creative Commons de Reconocimiento­No comercial­Sin obras derivadas 2.5

Share | 0

» Registrate y accede a esta y otras ventajas «

Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Si la queremos realizar por estadística, habría que añadir el parámetro:

Obteniendo este resultado:

Para que sea un poco más exacta la estimación, actualizamos las analíticas de las tablas:

Y una vez actualizadas, volvemos a ejecutar el expdp con unos resultados distintos:

Estos los resultados de estimación por estadísticas son mucho superiores que los de estimación por bloque debido al tamañotan pequeño de las tablas de prueba. En tablas de mayor tamaño, en entornos productivos, las estimaciones son másajustadas

6. Más información.

Exdp dispone de otros parámetros que permiten, entre otras cosas, poder establecer compresión y encriptación, pero sóloestán disponibles en las versiones Enterprise de Oracle. También existe la posibilidad de especificar varios ficheros deexportación indicando el tamaño máximo de los mismos e incluso realizar la exportación empleando varios jobs en paralelo.Podéis verlos en detalle en la documentación oficial de Oracle:

http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

1 ESTIMATE=STATISTICS

12

SQL> analyze table tabla01 compute statistics;SQL> analyze table tabla02 compute statistics;

More ShareShareShareShareShareShare

?

?