Inicio > GoldenGate > Generar comandos SQL a partir de los ficheros de trail de Oracle GoldenGate

Generar comandos SQL a partir de los ficheros de trail de Oracle GoldenGate

Como ya hemos comentado en otras entradasGoldenGate es una herramienta que “permite capturar, enrutar, transformar y enviar datos transaccionales entre entornos heterogéneos en tiempo real”. Los datos (las transacciones) una vez capturados se almacenan en unos ficheros con formato propietario (independientes de la plataforma) llamados ficheros de “trail”. Vamos a revertir este proceso y obtener, de estos ficheros de trail, las sentencias SQL equivalentes a las transacciones almacenadas en ellos.

En esta entrada considero que el lector ya tiene un mínimo conocimiento de Goldengate, por lo que en caso contrario os recomiendo que reviséis la presentación que acompaña al post indicado anteriormente (ya que os estáis perdiendo un producto muy muy interesante).

Los datos capturados por GoldenGate se pueden almacenar en forma de ficheros de trail en diferentes puntos (dependiendo de la arquitectura escogida) y estos ficheros tendrán mas o menos información dependiendo de si ésta ha estado filtrada en la ruta hasta ese fichero concreto.

oracle_config

Pueden existir casos en que sea interesante disponer de las sentencias “SQL” que equivalen a los datos almacenados en estos ficheros de trail, o lo que es lo mismo, obtener las sentencias que GoldenGate ejecutaría en la BBDD destino al aplicar en ella esos ficheros de trail.

Existe una herramienta propia de GoldenGate llamada logdump que nos permite abrir estos ficheros, movernos entre las diferentes transacciones y sentencias, filtrar, buscar transacciones determinadas e incluso modificar el contenido de los ficheros.

El “aspecto” que tienen las transacciones mostradas mediante logdump dista mucho de lo que podríamos esperar si estamos acostumbrados a trabajar con sentencias SQL en herramientas tipo SQL*Plus o SQL*Developer:

logdumprecord_wseqinfoNo obstante podemos pasar estas sentencias SQL a formato “texto”, lo que nos permitirá trabajar con ellas (modificarlas/auditarlas/contabilizarlas) mas fácilmente.

La manera de conseguir esto consiste en crear un proceso de replica replicat, que leerá de los ficheros de trail y escribirá en un fichero de texto las sentencias (en lugar de aplicarlas a una BBDD).

Los pasos para realizar esta tarea son los siguientes:

  • Creamos un proceso replicador en nuestra instalación de GoldenGate (puede ser la misma que usemos para extraer en origen, reenviar/filtrar datos en algún paso intermedio o replicar en la BBDD destino). Al crear el replicat le indicamos la ubicación de los ficheros de trail que queremos procesar:

ADD EXTRACT ATEXTO, EXTTRAILSOURCE /u02/app/gg11G/dirdat/rp

  • Creamos el fichero de configuración para este replicat en el directorio “dirprm” de nuestra instalación, con el nombre que escojamos, por ejemplo atexto.prm. El contenido del fichero será el siguiente:

EXTRACT ATEXTO
USERID <USUARIO_GG_BBDD>, PASSWORD <PASSWORD_GG_BBDD>
FORMATSQL
EXTTRAIL /tmp/fs
TABLE ESQUEMA.MITABLA

Indicamos el nombre del extract que hemos escogido (en este caso ATEXTO), el usuario y password del usuario GoldenGate usado para acceder a la BBDD (es necesaria la conexión a la BBDD para saber que formato tienen las tablas en destino y poder construir la sentencia SQL correctamente), el comando FORMATSQL que es realmente el que le indica que queremos generar comandos SQL y no replicar en una BBDD, la ruta y prefijo de los ficheros en los que dejará las sentencias (en este caso /tmp/fs) y, finalmente, podemos añadir todo tipo de filtros que creamos necesarios (en este caso indicamos que sólo queremos los SQL correspondientes a una tabla llamada MITABLA en el esquema ESQUEMA).

  • El siguiente paso es registrar el fichero de salida en que dejará las sentencias mediante el comando:

ADD EXTTRAIL /tmp/fs, EXTRACT ATEXTO

  • Acto seguido indicamos el fichero de trail en que deberá empezar a leer las transacciones (por defecto buscaría el  primero /u02/app/gg11G/dirdat/rp00001), que posiblemente no sea el indicado:

ALTER EXTRACT ATEXTO, EXTSEQNO <numero_secuencia>

  • Finalmente arrancamos este proceso de replicat y, si no hay novedad, el fichero destino se irá llenando con las sentencias SQL deseadas:

 START REPLICAT ATEXTO

Categorías:GoldenGate Etiquetas: , ,
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: