Propagación de Cambios de Evolución de Tabla de Origen a Destino
Oracle GoldenGate replica los cambios de tabla, incluidos los eventos de tabla que faltan. Cuando AUTOSCHEMA está activado, el evento de tabla que falta se detecta durante la asignación de tabla, más específicamente, al procesar el registro de definición de tabla (TDR) desde el archivo de pista.
Los siguientes pasos explican este flujo de trabajo:
-
Replicat intenta resolver los metadatos de la tabla de destino. Si la resolución de metadatos falla con el error
object not found, indica que la tabla de destino no existe en la base de datos de destino. -
Si la funcionalidad
AUTOSCHEMAestá activada, la sentenciaCREATE TABLE, para la tabla de destino que falta, se genera en función de los metadatos de origen en el registro de TDR.-
La plantilla de asignación de tipo de dato por defecto, basada en el tipo de base de datos de destino, se utiliza al seleccionar los tipos de dato adecuados para las columnas de la tabla de destino.
-
La sentencia
CREATE TABLEse genera en función de la sintaxis SQL de la base de datos de destino, teniendo en cuenta las preferencias del usuario, si se especifica. Puede especificar las siguientes preferencias:-
Nombre de tabla de destino como se especifica en la cláusula
TARGETdel juego de estado de MAP correspondiente en el archivo de parámetros de replicación. -
Por defecto, los nombres de las columnas de la tabla de destino son los mismos que las columnas de la tabla de origen; sin embargo, puede seleccionar nombres diferentes mediante
COLMAP. -
Puede seleccionar nombres de tipos de datos personalizados (disponibles en la base de datos de destino) para nombres de tipos de datos de origen específicos (o columnas de origen) mediante
TYPEMAP. Adecuado en casos en los que los tipos de dato soportados (y sus límites) pueden diferir entre las bases de datos de origen y destino.
-
-
-
El proceso de replicación maneja automáticamente la creación de nuevas tablas mediante las sentencias
CREATE TABLEgeneradas, siempre que la operación cumpla los criterios de filtrado configurados (como las reglasINCLUDE/EXCLUDE). Si se produce un problema temporal, el sistema intenta aplicar el cambio varias veces en función de la configuración de reintento configurada. Si el cambio aún no se puede aplicar después de estos reintentos, la replicación se detendrá y se informará un error.
Propagación de la Evolución de Columna en Tablas de Destino
La columna que falta en el evento de tabla de destino se detecta durante la asignación de tabla. Más concretamente, al procesar el registro de definición de tabla (TDR).
-
Replicat intenta resolver los metadatos de la tabla de destino. En este caso, dado que la tabla de destino existe, la resolución de metadatos no falla, pero se devuelve una estructura de definición de tabla de destino válida.
-
Si
AUTOSCHEMAestá activado, los metadatos de la definición de tabla de destino se comparan con los metadatos de la tabla de origen en el registro de TDR entrante. Se utiliza para detectar cualquier columna adicional en los metadatos de la tabla de origen del registro de TDR que no esté disponible en la definición de la tabla de destino y que se haya recuperado en el paso anterior.-
La plantilla de asignación de tipo de dato por defecto según el tipo de base de datos de destino se utiliza al seleccionar los tipos de dato más adecuados para las nuevas columnas de la tabla de destino.
-
La sentencia
ALTER TABLE ADD COLUMNse genera en función de la sintaxis SQL de la base de datos destino.Puede seleccionar nombres de tipos de datos personalizados (disponibles en la base de datos de destino) para nombres de tipos de datos de origen específicos (o columnas de origen). Adecuado en casos en los que los tipos de dato soportados (y sus límites) pueden diferir entre las bases de datos de origen y destino.
-
-
Si se identifican columnas adicionales de este tipo, la sentencia
ALTER TABLE ADD COLUMN, para la tabla de destino existente, se genera en función de los metadatos de origen del registro de TDR (más específicamente las columnas adicionales del registro de TDR).
La infraestructura de replicación DDL existente realiza la ejecución del ALTER TABLE DDL generado solo cuando el DDL correspondiente transfiere los criterios de cadena de archivos DDL (criterios DDL INCLUDE/EXCLUDE con opciones OBJTYPE/OPTYPE/OBJNAME). Como la infraestructura de replicación DDL también se utiliza para AUTOSCHEMA, también se utiliza la lógica de reintento en códigos de error no graves. La lógica de reintento también tiene un número configurable de reintentos y un retraso entre reintentos. Si la ejecución de DDL generada falla incluso después de los reintentos, Replicat finaliza de forma anormal.