Preparación de Tablas para el Proceso
Los siguientes atributos de tabla se deben abordar en un entorno de Oracle GoldenGate para TimesTen.
Eliminación de las restricciones CASCADE ON DELETE
Si una tabla de destino en Oracle TimesTen tiene una clave ajena, que especifica la cláusula ON DELETE CASCADE, y si la tabla que es el destino de esa clave ajena también es un destino para la replicación de Oracle GoldenGate, debe eliminar la cláusula ON DELETE CASCADE de la definición de clave ajena para evitar errores.
Tenga en cuenta el siguiente ejemplo, donde las tablas de origen son emp_src y salary_src y las tablas de destino son emp_targ y salary_targ.
-
Se emite una supresión para
emp_src. -
Aplica una supresión en cascada a
salary_src. -
Oracle GoldenGate envía ambas supresiones al destino.
-
La supresión principal llega primero y se aplica a
emp_targ. -
La supresión principal aplica en cascada una supresión a
salary_targ. -
La supresión en cascada de
salary_srcse aplica asalary_targ. -
No se puede ubicar la fila porque ya se suprimió en el paso 5.
Oracle TimesTen no soporta la desactivación de restricciones de clave ajena ni la supresión de restricciones en cascada. Para eliminar ON DELETE CASCADE, debe borrar la tabla y volver a crearla sin la cláusula ON DELETE CASCADE o puede utilizar ALTER TABLE para eliminar la restricción de clave ajena y volver a crearla sin la cláusula ON DELETE CASCADE.
Garantía de la Unicidad de Filas para Tablas
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
-
Primera clave única alfanuméricamente que no contiene un registro de hora ni una columna calculada no materializada.
-
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
WHEREmás grande y menos eficaz.
- 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. Esta clave de sustitución se define mediante la inclusión de una cláusula KEYCOLS en el parámetro Extract
TABLEy el parámetro ReplicatMAP. La clave especificada sustituirá cualquier clave primaria o única existente que encuentre Oracle GoldenGate. Consulte TABLE | MAP en Referencia de parámetros y funciones para Oracle GoldenGate.