viernes, 22 de mayo de 2009

Diferencia entre EXP y EXPDP 10g

Cuántas veces deseamos realizar un respaldo de una porción de la base de datos, un grupo de tablas de un esquema excepto algunas, ó detener un respaldo por un momento y volverlo a reiniciar posteriormente. ? Esto algo que muchas veces quisimos hacer en las versiones previas a 10g, pero no era posible.

Hay muchas diferencias entre el utilitario convencional EXP y el nuevo utilitario EXPDP. Primero que todo aclaramos, que ambos utilitarios conviven en la versión 10g, pero una vez que conocemos las virtudes de EXPDP, difícilmente volvamos a utilizar EXP.

El EXPDP es parte de el "DATA PUMP UTILITY", y sirve para exportar información de la base de datos. El IMPDP hace la función contraría y la equivalente al clásico IMP. El DATA PUMP es un componente de software que cuenta con interface de línea de comandos, archivo de parámetros, línea interactiva y adicionalmente se le puede hallar dentro del Database Control ( Herramienta Web Administrativa de la base de datos ).

El DATA PUMP EXPORT e IMPORT pueden:

  • Generar un respaldo ó importación total de la base de datos ( FULL )
  • Trabajar a nivel de esquema
  • A nivel de tabla
  • Tablespaces
  • Tablespaces transportable

En el caso de EXPDP del cual estamos hablando en este momento, cuenta con un grupo de cláusulas que permite tener un mayor control, sobre lo que queremos exportar. Nos permite a través de la clausula EXCLUDE por ejemplo, indicarle que no exporte un conjunto de objetos. Por ejemplo EXCLUDE=PACKAGE , no exportaría los paquetes del esquema o la base de datos que estamos importando. Otro ejemplo EXCLUDE=TABLE:"LIKE '%TMP%'", no exportaría las tablas que cumplan con contengan las letras "TMP".

La clausula INCLUDE, me permite indicarle que incluya sólo aquel grupo de objetos que cumplan con una condición dada. INCLUDE= tipo_objeto[:"expresión"].

La clausula CONTENT, establece que tipo de contenido deseo exportar ALL, METADATA_ONLY, DATA_ONLY.

Cuenta con la clausula QUERY, que ya existía en las versiones anteriores de EXP.

Una de las principales características es la opción de crear un subconjunto de datos, para por ejemplo la creación de un ambiente de pruebas. La clausula SAMPLE, me permite indicarle al DATA PUMP, que exporte un porcentaje específico de una base de datos ó de un esquema. Por ejemplo: SAMPLE='INVENTARIOS"."EXISTENCIAS":50%. Con EXPDP, exportaría el 50% de los registros de la tablas EXISTENCIAS del esquema de INVENTARIOS.

A nivel del interface Web, la administración es sumamente sencilla, permitiendo escoger el tipo de exportación que se desea hacer. También se puede obtener una estimación del espacio que ocuparía el export, basado en los bloques de la base de datos utilizados por los objetos a exportar ó en base a las estadísticas almacenadas en el diccionario de la base de datos. En el paso 3 de la Consola Web, me permite programar la hora de inicialización del export o bien ejecutarlo inmediatamente. Además podemos pausar la ejecución de un export que este consumiendo mucho recurso del servidor en un momento dado y programar la hora de continuación del mismo, dejando siempre CONSISTENTE el respaldo iniciado previamente.

Estas son algunas de las grandes diferencias entre EXPDP y EXP de las versiones anteriores.

Bibliografía:

Oracle® Database Utilities
11g Release 1 (11.1)

Part Number B28319-02

Oracle® Database Administrator's Guide
10g Release 2 (10.2)

Part Number B14231-02


 


2 comentarios:

  1. Una pregunta por favor yo veo que cuando se crea el directorio es un directorio de la máquina local, si yo quiero que sea el de otra máquina como se le da la instrucción.

    CREATE DIRECTORY datapump AS '/export';

    ResponderEliminar
  2. Eso no se puede hacer.. con oracle, toca crear el directorio en la misma maquina donde esta la base de datos.

    ResponderEliminar

Te agradezco tus comentarios. Te esperamos de vuelta.