Inicio de un renovación en una suscripción

La operación de renovación de la réplica de CDC se ha diseñado para sincronizar las tablas de origen y de destino.

Acerca de esta tarea

Las tablas pueden quedar fuera de sincronización por varios motivos, incluidas las cuestiones siguientes:

Tablas aparcadas
Se aparca una tabla respecto de la réplica durante un cierto tiempo para realizar cambios (como, por ejemplo, la actualización de la definición de una tabla de origen) y los cambios que tienen lugar en el origen ya no se replican.
Esto puede hacer que la tabla de destino sea incoherente con la tabla de origen.
Cambios de configuración
Puede que sea necesario realizar una renovación cuando se promociona un conjunto de suscripciones a partir de un entorno de prueba para un entorno de producción.
La operación de promoción puede añadir nuevas transformaciones u otros cambios de correlación de tablas que requieran que se renueven las tablas de origen y de destino para prepararlas para la duplicación.
Operaciones de mantenimiento
Las grandes operaciones de SQL masivas que se llevan a cabo mientras se presta mantenimiento a las ventanas de la tabla de origen que afecta a una mayoría de filas pueden resincronizarse de forma más rápida utilizando la renovación. La renovación puede ser más rápida que la duplicación a la hora de replicar millones de cambios debido a la posibilidad de realizar cargas masivas de filas en la base de datos de destino.

Cuando tenga una suscripción que contenga una tabla de destino que no se haya sincronizado con la tabla de origen, puede marcar la tabla de origen para una renovación. Las tablas que se han marcado para la renovación y tienen un método de réplica de Duplicar se renovarán antes de que empiece la duplicación.

La réplica de CDC renovará todas las tablas marcadas en una sola suscripción como una operación secuencial que se ejecutará hasta su finalización. Cada tabla se renueva de forma individual de una en una hasta que se terminan de renovar todas las tablas marcadas. La renovación es una operación que se aplica a una sola suscripción, por lo que mientras se está renovando una suscripción, el resto de suscripciones no se ven afectadas; pueden continuar duplicando datos para tablas distintas o renovando tablas, según convenga. Para llevar a cabo una renovación en paralelo, se pueden utilizar varias suscripciones.

Las tablas basadas en reglas no forman parte de una renovación. En Management Console, cuando se inicia una renovación, verá un aviso que indica que las tablas seleccionadas mediante reglas no se renovarán.

La réplica de CDC ofrece dos tipos de operaciones de renovación: renovación estándar y renovación diferencial.

Una renovación estándar genera una copia completa de los datos de una tabla de origen que se envían a la tabla de destino. Esta operación trunca o suprime el contenido de la tabla de destino y, a continuación, inserta el contenido nuevo como si lo hubiera enviado el sistema de origen.

Una renovación diferencial actualiza la tabla de destino aplicando solamente las diferencias entre ésta y la tabla de origen. En lugar de borrar la tabla de destino al principio de la renovación y volver a llenarla de datos, igual que ocurre con la renovación estándar, la renovación diferencial compara cada fila de la tabla de destino con cada fila de la tabla de origen para identificar las filas que faltan, que se han modificado o añadido. La principal ventaja de la renovación diferencial es que la tabla de destino permanece en línea durante la operación de renovación.

Existen tres métodos posibles para la renovación diferencial:

Sólo renovación
Lleva a cabo una renovación diferencial cambiando las filas de destino que difieren de las filas de origen.
Renovación y registro de diferencias
Lleva a cabo una renovación diferencia y también crea una tabla de registro en los metadatos del motor de réplica de destino para realizar un seguimiento de todos los cambios durante la renovación.
La tabla de registro es idéntica a la tabla de destino, con la adición de una columna para indicar las acciones llevadas a cabo durante la renovación como, por ejemplo, la inserción de una fila, la supresión de una fila o la actualización de una fila. Para una actualización, se registran tanto las imágenes de fila de origen como de destino. Esta tabla de registro se crea en la misma base de datos y el mismo espacio de tabla que la tabla TS_CONFAUD (o la tabla DMMD_DMCONFAUD para el motor de réplica de CDC para DB2 para z/OS), con el mismo propietario que los metadatos. El nombre de la tabla de registro se crea combinando el nombre de suscripción, el nombre de la tabla de destino y la fecha y hora de inicio de la renovación.
Registro sólo de diferencias
Crea y rellena una tabla de registro en los metadatos del motor de réplica de destino para identificar todas las diferencias entre las tablas de origen y de destino.
La tabla de destino no se actualiza. Esto le permite evaluar qué diferencias hay entre el origen y el destino. Si después decide renovar la tabla, podrá volver a la suscripción y seleccionar Sólo renovación para actualizar la tabla de destino o actualizar la tabla de destino manualmente según el contenido de la tabla de registro.

La realización de una renovación diferencial tiene ciertos requisitos y restricciones:

  • La renovación diferencial solamente está disponible para las tablas que utilizan la réplica estándar
  • La secuencia de ordenación de las tablas de origen y de destino debe ser idéntica
  • Las columnas derivadas en la tabla de origen no reciben soporte
  • Se ignorará cualquier columna de destino que se haya correlacionado con expresiones derivadas, constantes o campos de control de diario
  • Las columnas de claves de la tabla de destino se deben correlacionar directamente con las columnas de la tabla de origen.
  • La tabla de destino debe tener una clave única, ya sea una clave primario o un índice exclusivo con al menos una columna que no admita valores nulos.

Tanto la renovación estándar como la renovación diferencial se pueden precisar más mediante la utilización de una cláusula SQL WHERE para que solamente incluya filas en un rango especificado. Resulta útil para aquellas tablas en que solamente los datos más reciente requieren una renovación.

Si desea precisar la renovación mediante la utilización de una cláusula SQL WHERE, la característica Subconjunto de filas requiere que se cumpla una de estas condiciones:
  • Que se haya establecido el punto de captura de tabla, ya sea de forma explícita o mediante la duplicación de la tabla en Management Console o el programa CHCCLP.
  • Que se haya establecido el punto de captura para la suscripción (utilizando el mandato SETLOGPOS o el mandato dmsetbookmark donde sea aplicable)

El orden en el que se recuperan los datos de la base de datos depende del tipo de renovación que se haya realizado. Durante una renovación estándar, no se utiliza la clasificación ORDER BY; la base de datos determina el orden en que se devuelven los datos. Durante una renovación diferencial, la réplica de CDC consulta la base de datos utilizando una clasificación ORDER BY en las claves de tabla elegidas en la correlación de tabla para clasificar las tablas de origen y de destino y así determinar sus diferencias.

Cuando se lleva a cabo una renovación con varias tablas, el orden en que se renueva cada tabla individual se basa en el orden del grupo, tal como se haya establecido en la opción Orden de renovación.

Tras finalizar correctamente una renovación, se podrá reiniciar la suscripción para su duplicación. La réplica de CDC procesará después el retraso de los cambios. Para las tablas que no se han renovado, la réplica de CDC seguirá procesando cambios desde la posición en la que terminó la duplicación. Para las tablas que se han renovado, la réplica de CDC procesará todos los cambios que se hayan confirmado tras empezar la renovación de esa tabla.

Notas:
  • Cuando se utiliza la réplica de CDC en una configuración bidireccional, tiene que asegurarse de que se den las condiciones siguientes cuando renueve una tabla del lado A al lado B:
    • No se produce ninguna carga de trabajo de aplicación en el lado B para esa tabla mientras se produce la renovación.
    • La tabla no se ha duplicado del lado B al lado A.
    • Después de finalizar la renovación y antes de añadir de nuevo la carga de trabajo en el lado B, tiene que ejecutar el mandato dmmarktablecapturepoint para esa tabla.
  • La renovación diferencial no está disponible para almacenes de datos del motor de réplica de CDC para tecnología Netezza ni del motor de réplica de CDC para FlexRep.
  • InfoSphere CDC for z/OSSi no se ha establecido ningún orden de renovación para una suscripción del motor de réplica de CDC para DB2 para z/OS, las tablas se renovarán en orden alfabético.
  • InfoSphere CDC for TeradataLa funcionalidad de renovación no está disponible para el motor de réplica de CDC para Teradata cuando se está utilizando el programa de utilidad TPUMP.

Procedimiento

  1. Detenga la duplicación en las suscripciones activas que tengan tablas renovadas.
  2. Asegúrese de que las tablas que se van a renovar estén marcadas para la renovación.
  3. Pulse Supervisión > Suscripciones.
  4. Si la suscripción está disponible para la edición, pulse con el botón derecho del ratón en una o varias suscripciones y seleccione Iniciar renovación.

    El cuadro de diálogo Iniciar renovación muestra todas las tablas de las suscripciones seleccionadas que se han marcado para renovación.

  5. Si desea ver los detalles de renovación para una tabla específica, selecciónela y pulse Opciones de renovación.

    Si se han seleccionado varias correlaciones de tablas, las restricciones de filas habilitadas no se mostrarán en el cuadro de diálogo Opciones de renovación.

  6. Pulse Aceptar.