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


 


4 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
  3. Con el antiguo EXP e IMP, si utilizas ORACLE sobre windowns sencillo ya que utilizas una carpeta compartida.
    exp file='\\servidor\directorio\archivo.dmp' ...
    Otra forma es que tengas instalado el cliente de ORACLE en el equipo remoto donde deseas el respaldo y simplemente realizas tu export o import sobre la base de datos ya que el TNSNAMES tiene definido donde se encuentra, espero haberme explicado.

    ResponderEliminar
  4. En SOP Oralce-Linux no es permitido crear directorios Remotos o a travéz del samba
    ya que existe un usuario oracle que debe ser el dueño del directorio físico.
    chown oracle:oracle /directoriocopias al cual ademas se le deben dar permisos de READ, WRITE
    al usuario generador de backup.

    CREATE OR REPLACE DIRECTORY BACKUPS AS '/directoriocopias';
    GRANT READ, WRITE ON DIRECTORY BACKUPS TO system;

    Si la BD pierde conexión con el server directorio remoto
    puede tomarlo como un directorio corrupto, reportandolo a los archivos
    de control de oracle y es posible que la BD se bloquee hasta que resuelvas
    el inconveniente.


    ResponderEliminar

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar