Preparación de Tablas para el Proceso

Los atributos de tabla de las siguientes secciones se deben abordar en el entorno de Oracle GoldenGate.

Consideración de Replicat para Columnas, Disparadores y Restricciones de Identidad de Destino

Al replicar datos en una base de datos de SQL Server de destino que tiene columnas de identidad, disparadores y restricciones de cascada y control, tenga en cuenta lo siguiente:

Para superar estas situaciones, hay varias opciones que se pueden implementar en función del caso de uso de replicación.

Mejora de la replicación de IDENTITY con el procesamiento de matrices

Puesto que solo una tabla por sesión puede tener IDENTITY_INSERT definido en ON, Replicat debe alternar continuamente IDENTITY_INSERT cuando aplica datos IDENTITY a varias tablas de una sesión. Para mejorar el rendimiento de Replicat en esta situación, utilice el parámetro BATCHSQL. BATCHSQL hace que Replicat utilice el procesamiento de matriz en lugar de aplicar sentencias SQL de una en una.

Garantizar la unicidad de fila en la tabla de origen y destino

Oracle GoldenGate necesita algún tipo de identificador de fila único en las tablas de origen y destino para localizar las filas de destino correctas para las actualizaciones y supresiones replicadas.

A menos que se utilice una cláusula KEYCOLS en la sentencia TABLE o MAP, Oracle GoldenGate selecciona un identificador de fila para utilizarlo en el siguiente orden de prioridad:

  1. Clave primaria

  2. Primera clave única alfanuméricamente que no contiene un registro de hora ni una columna calculada no materializada.

  3. Si no existe ninguno de los tipos de clave anteriores (aunque puede haber otros tipos de claves definidos en la tabla) Oracle GoldenGate construye una pseudoclave de todas las columnas que la base de datos permite utilizar en una clave única, excluidas las que no soporta Oracle GoldenGate en una clave o las que están excluidas de la configuración de Oracle GoldenGate. Nota: Si hay otras claves no utilizables en una tabla o si no hay ninguna clave en la tabla, Oracle GoldenGate registra un mensaje adecuado en el archivo de informe. La creación de una clave a partir de todas las columnas impide el rendimiento de Oracle GoldenGate en el sistema de origen. En el destino, esta clave hace que Replicat utilice una cláusula WHERE más grande y menos eficaz.

  1. Si una tabla no tiene una clave adecuada o si prefiere que no se utilicen las claves existentes, puede definir una clave sustituta si la tabla tiene columnas que siempre contienen valores únicos. Para definir esta clave de sustitución, incluya una cláusula KEYCOLS en el parámetro Extract TABLE y el parámetro Replicat MAP. La clave especificada sustituirá cualquier clave primaria o única existente que encuentre Oracle GoldenGate. Consulte TABLE | MAP en Reference for Oracle GoldenGate.

Uso de KEYCOLS para especificar una clave personalizada

Si una tabla no tiene un identificador de fila aplicable o si prefiere que no se utilicen identificadores, puede definir una clave de sustitución, siempre que la tabla tenga columnas que siempre contengan valores únicos. Para definir esta clave de sustitución, incluya una cláusula KEYCOLS en el parámetro Extract TABLE y el parámetro Replicat MAP. La clave especificada sustituye cualquier clave primaria o única existente que encuentre Oracle GoldenGate.