Oracle Live

26/04/2016

Problemas HANDLECOLLISIONS durante la carga inicial

Filed under: Golden Gate,Troubleshooting — mogukiller @ 5:38 pm

Creo oportuno reflejar lo que me ha pasado para evitar que perdais el tiempo con las cargas iniciales. Como seguramente la mayoria de vosotros para hacer una carga inicial hago:

  • Add trandata de las tablas implicadas.
  • Configuracion de los extractores y el pump.
  • Export con datapump o clásico.
  • Import en destino.
  • Configuración de los replicadores con HANDLECOLLISIONS
  • Levanto el replicador unos minutos antes de haber lanzado el export.
  • Quito el HANDLECOLLISIONS un poco despues de haber terminado el export.

El problema me surge cuando levanto el replicador y empiezo a obtener errores:

WARNING OGG-00869  Oracle GoldenGate Delivery for Oracle, rptaux4.prm:  OCI Error ORA-01400: cannot insert NULL into

Revisando con SHOWSYNTAX y con LOGDUMP veo que desde origen el insert unicamente me vienen las columnas que estan definidas en el TRANDATA. Pero me resultaba raro que el insert en origen unicamente incluyese solo esas columnas.

La resolucion erradica en la documentacion del HANDLECOLLISIONS:

  • If the row with the old key is not found in the target, the change record in the trail is converted to an insert.
  • If a row with the new key exists in the target, Replicat deletes the row that has the old key

Compruebo que la transaccion previa es precisamente el update, recibiendo este WARNING:

WARNING OGG-01396  A complete after image is not available in MOG.AC_VALOR at rba 2662,
while inserting a row into CRC.AC_EMPRCORR_1 due to missing target row for a key update operation.
NOCOMPRESSUPDATES or FETCHOPTIONS FETCHPKUPDATECOLS may be specified in the EXTRACT parameter file to include a complete image for key update operations.

Este mensaje ya te da la solución, utilizando NOCOMPRESSUPDATES, por lo que en el Update ya irian todas las columnas de la tabla, que serian con las que se construirian el insert si no se encuentra la clave principal.

Otra opcion es hacer el export transaccional con FLASHBACK_SCN y levantar el replicador sin HANDLECOLLISIONS.

 

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

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

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: