Resincronización de datos de AWS DMS - AWS Database Migration Service

Resincronización de datos de AWS DMS

La resincronización de datos de AWS Database Migration Service (AWS DMS) corrige automáticamente las inconsistencias de datos identificadas mediante la validación de datos entre las bases de datos de origen y destino. Esta característica funciona como parte de sus tareas de migración de DMS actuales, lo que garantiza que se realicen las actualizaciones adecuadas en función de las configuraciones de las tareas, los ajustes de conexión, las asignaciones de tablas y las transformaciones.

La característica de resincronización de datos funciona mediante la lectura de los errores de validación de una tabla de control en la base de datos de destino y la ejecución de las operaciones de reparación adecuadas. Cuando se detecta una discrepancia, los datos actuales se obtienen del origen usando la clave principal almacenada en el registro de errores y se aplican al destino respetando las transformaciones configuradas. Para obtener más información, consulte Tabla de control awsdms_validation_failures_v2.

El comportamiento varía en función del tipo de migración. En el caso de las tareas que solo son de carga completa, la resincronización de datos se ejecuta una vez finalizada la carga inicial y la validación. En el caso de las tareas que requieren la captura de datos de cambios (CDC), la resincronización de datos funciona según una programación configurada que detiene temporalmente la replicación y la validación mientras se aplican las correcciones.

Durante las operaciones de resincronización de CDC:

  • La replicación y la validación se detienen temporalmente.

  • La resincronización de datos procesa los errores de validación existentes.

  • Se reanudan la replicación y la validación normales.

  • El proceso se repite según la programación configurada.

La resincronización de datos rastrea automáticamente el estado de cada operación de reparación y proporciona métricas detalladas mediante estadísticas de tablas.

Requisitos previos:

La característica de resincronización de datos necesita los siguientes requisitos previos:

  • Debe disponer de la versión 3.6.1 o posterior de AWS DMS.

  • Debe configurar los ajustes de programación y duración para las tareas que tienen una replicación continua. Las tareas que solo son de carga completa no requieren estos ajustes.

Limitaciones

La característica de resincronización de datos tiene las siguientes limitaciones:

  • La resincronización de datos solo admite Oracle y SQL Server como base de datos de origen.

  • La resincronización de datos admite el motor compatible con PostgreSQL y Amazon Aurora PostgreSQL como base de datos de destino.

  • Todas las tablas de la base de datos de origen y destino deben tener claves principales. La validación no admite tablas sin una clave principal o una clave única. Las tablas que no tengan una clave principal o única válida no se validan y no se informa de ningún error de validación.

  • Al ejecutar tareas que solo son de carga completa, la validación de datos debe estar habilitada.

  • La resincronización de datos no se puede habilitar para las tareas exclusivas de validación, ya que no replican ningún dato. Puede habilitar la resincronización en la tarea de replicación principal proporcionando el taskID exclusivo de validación. Para obtener más información, consulte Tareas exclusivas de validación.

  • Si la tarea exclusiva de validación tiene configurado un parámetro ControlSchema en la configuración de la tarea, la tarea de replicación también debe tener la misma configuración de parámetros para que la resincronización de datos detecte los errores de validación correctos.

  • Debe configurar los ajustes de programación y duración de las tareas de CDC.

  • Durante el período de resincronización, la resincronización de datos puede afectar a la latencia de replicación en DMS.

Para obtener más información sobre la solución de problemas de las validaciones en AWS DMS durante la resincronización de datos, consulte la sección Solución de problemas en Validación de datos de AWS DMS.

Programación y duración

Para las tareas con CDC, debe configurar cuándo y durante cuánto tiempo funcionará la resincronización de datos. Esto ayuda a evitar que sus operaciones de replicación habituales se vean afectadas. Debe especificar:

  • un programa que utiliza el formato cron para definir cuándo se pueden producir las operaciones de resincronización,

  • una duración máxima para garantizar que las operaciones de resincronización no se prolonguen hasta los períodos de mayor consumo.

Se recomienda programar las operaciones de resincronización durante las horas de menor actividad o en un período en el que los cambios en la base de datos de origen sean mínimos o nulos.

nota

El tiempo programado incluye esperar a que el flujo de aplicación de destino esté vacío, ya que la resincronización de datos y la replicación normal no pueden ejecutarse simultáneamente.

Casos de uso

La característica de resincronización de datos permite a los usuarios reconciliar las incoherencias de datos entre los sistemas de origen y destino. Además, identifica los registros que no coinciden y los sincroniza para mantener la coherencia de los datos en los entornos distribuidos. Los siguientes casos de uso muestran situaciones comunes en las que la característica de resincronización de datos resuelve los problemas de coherencia de datos:

Escenario 1 - Tarea de carga completa: ejecute la resincronización con la misma tarea de DMS

En la tarea de migración de carga completa de DMS existente, puede realizar lo siguiente:

  • Activar la validación: Validation with data migration = true

  • Activar la resincronización: Data resync = true

Escenario 2 - Tarea de carga completa y CDC, tarea exclusiva de CDC: ejecute la resincronización con la misma tarea de DMS

En la tarea de migración de CDC de DMS existente, puede realizar lo siguiente:

  • Activar la validación: Validation with data migration = true

  • Activar la resincronización: Data resync = true

  • Especificar el programa de resincronización: "ResyncSchedule": "0 0,2,4,6 * * *"

  • Especificar la hora de resincronización: MaxResyncTime": 60

Escenario 3 - Tarea de carga completa y CDC o tarea exclusiva de CDC para la replicación y resincronización, en combinación con una tarea exclusiva de validación

Para realizar una operación exclusiva de validación en otra tarea de DMS al utilizar la resincronización, puede hacer lo siguiente:

  • Crear una tarea de CDC de DMS exclusiva de validación

    nota

    Debe tomar nota y especificar el ID de esta tarea durante la resincronización de datos.

  • En su tarea de CDC principal, desactive la validación: Data validation = false

  • Activar la resincronización: Data resync = true

  • Especificar el programa de resincronización: "ResyncSchedule": "0 0,2,4,6 * * *"

  • Especificar la hora de resincronización: MaxResyncTime": 60

  • Especificar el ID de la tarea de CDC de DMS exclusiva de validación. El ID de la tarea exclusiva de validación se añade al final del ARN. Ejemplo de ARN: arn:aws:dms:us-west-2:123456789012:task:6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI y ejemplo de ID de tarea exclusiva de validación: 6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI

Prácticas recomendadas

Puede aprovechar la característica de resincronización de datos en AWS Database Migration Service para mejorar la durabilidad de sus tareas de replicación y lograr coherencia. Algunas prácticas recomendadas para utilizar la característica de resincronización de datos son:

  • Como parte de la resincronización de datos, los registros que no coinciden se corrigen extrayéndolos del origen y aplicándolos a la base de datos de destino. Si la base de datos de origen se actualiza durante el período de resincronización, la resincronización lee el último valor del registro y lo aplica al destino. Esto puede provocar que los eventos de aplicación de CDC fallen e introduzcan inconsistencias temporales en la base de datos de destino. Para evitarlo, debe programar el período de resincronización fuera del horario laboral o en períodos en los que los cambios en la base de datos de origen sean nulos o mínimos.

  • Establezca el período de resincronización durante los períodos de actividad mínima de la base de datos de origen y dentro del umbral de latencia de destino aceptable. Los intervalos de resincronización pequeños pueden provocar la acumulación de discrepancias de validación no procesadas, mientras que los períodos más extendidos pueden aumentar la latencia de replicación cuando se producen muchos errores de validación. Supervise los errores de validación y las tasas de resincronización para determinar los intervalos de resincronización óptimos durante los períodos de inactividad del origen. A continuación mostramos algunos ejemplos de configuración de los intervalos de resincronización:

    • Configuración de múltiples intervalos cortos:

      "ResyncSchedule": "0 0,2,4,6 * * *", "MaxResyncTime": 60
    • Configuración de un intervalo diario único:

      "ResyncSchedule": "0 0 * * *", "MaxResyncTime": 360
  • Supervise la latencia de replicación en DMS durante los intervalos de resincronización y ajuste la programación en consecuencia para mitigar los grandes picos.

  • Puede revisar los resultados de la resincronización en las estadísticas de tabla o consultando la tabla awsdms_validation_failures_v2 en la base de datos de destino. Para obtener más información, consulte Monitoreo de tareas de replicación con Amazon CloudWatch.

  • Cuando la tarea se encuentre en una fase de replicación continua, evite iniciar una recarga de tablas individuales durante el período de resincronización.

  • Prácticas recomendadas para una tarea de replicación de CDC:

    • Todas las tablas de su base de datos completan el proceso de carga.

    • Las discrepancias se identifican en el proceso de validación en curso.

    • Según el período de resincronización programado, la tarea de replicación se detiene durante un breve período.

    • La resincronización de datos soluciona los problemas identificados durante el proceso de validación.

    • El proceso de replicación se reanuda y se repite según la programación.

Configuración y ejemplos de resincronización de datos

Configuración de los ajustes de resincronización de datos:

Puede configurar la resincronización para su tarea de replicación en DMS. A continuación, se muestra un ejemplo de la configuración de los ajustes de resincronización de datos en su tarea:

"ResyncSettings": { "EnableResync": true, "ResyncSchedule": "0 0,2,4,6 * * *", // Run at 12AM, 2AM, 4AM, and 6AM daily "MaxResyncTime": 60, // Run for maximum of 60 minutes, or 1 hour "ValidationTaskId": "TASK-ID-IF-NEEDED" //Optional, used only if validation is performed as a separate Validation only task }

Ejemplos de patrones comunes de programación de la resincronización:

  • 0 0 * * *: se ejecuta una vez al día a medianoche

  • 0 0,12 * * *: se ejecuta dos veces al día a medianoche y al mediodía

  • 0 0,2,4,6, * * *: se ejecuta cada dos horas entre la medianoche y las 6 de la mañana

  • 0 1 * * 1: se ejecuta todas las semanas los lunes a la 1 de la madrugada

nota

Debe especificar un número del 0 al 6 para cada día. Para obtener más información, consulte Reglas de expresiones cron.

Supervisión de las operaciones de resincronización:

Puede supervisar la operación de resincronización mediante las estadísticas de tabla. A continuación, se muestra un ejemplo del resultado:

{ "TableStatistics": { ... "ValidationFailedRecords": 1000, ... "ResyncRowsAttempted": 1000, "ResyncRowsSucceeded": 995, "ResyncRowsFailed": 5, "ResyncProgress": 99.5, // ratio of ResyncRowsSucceeded/ValidationFailedRecords "ResyncState": "Last resync at: 2024-03-14T06:00:00Z" } }

Para configurar la característica de resincronización de datos en AWS DMS, puede revisar varios parámetros de resincronización y sus respectivos ajustes de configuración. Para obtener más información, consulte Configuración de la resincronización de datos. Para obtener más información sobre la configuración del registro de resincronización de datos, consulte Configuración de las tareas de los registros.

Validación y solución de problemas

Validación:

Cuando la validación de datos está activada, AWS DMS crea una tabla de errores de validación en la base de datos de destino con la siguiente estructura:

CREATE TABLE awsdms_validation_failures_v2 ( "RESYNC_ID" bigint NOT NULL, "TASK_NAME" varchar(128) NOT NULL, "TABLE_OWNER" varchar(128) NOT NULL, "TABLE_NAME" varchar(128) NOT NULL, "FAILURE_TIME" timestamp NOT NULL, "KEY_TYPE" varchar(128) NOT NULL, "KEY" varchar(7800) NOT NULL, "FAILURE_TYPE" varchar(128) NOT NULL, "DETAILS" varchar(7000) NOT NULL, "RESYNC_RESULT" varchar(128) NULL, "RESYNC_TIME" timestamp NULL, "RESYNC_ACTION" varchar(128) NULL );

Puede escribir una consulta en esta tabla para comprender las discrepancias de datos que se encuentran y cómo se resuelven.

Cuando la validación de datos está activada, AWS DMS crea una tabla de errores de validación en su base de datos de destino. Si tiene problemas, puede escribir una consulta en la tabla awsdms_control.awsdms_validation_failures_v2 para comprender las discrepancias de datos que se encuentran y cómo se resuelven. Para obtener más información, consulte la sección Solución de problemas en Validación de datos de AWS DMS.

Flujo de trabajo común:

Durante la validación en la resincronización de datos, el flujo de trabajo estándar es el siguiente:

Tareas que solo son de carga completa:

  1. Todas las tablas de su base de datos completan el proceso de carga.

  2. Las discrepancias se identifican en el proceso de validación en curso.

  3. La resincronización de datos soluciona los problemas identificados durante el proceso de validación.

  4. El proceso de validación valida la rectificación.

  5. La tarea de migración se ha completado correctamente.

Tareas de CDC:

  1. Todas las tablas de su base de datos completan el proceso de carga.

  2. Las discrepancias se identifican en el proceso de validación en curso.

  3. Según el período de resincronización programado, la tarea de replicación se detiene durante un breve período.

  4. La resincronización de datos soluciona los problemas identificados durante el proceso de validación.

  5. El proceso de replicación se reanuda y se repite según la programación.

Cualquier modificación que se realice en la tarea, como detener la tarea de replicación durante la operación de resincronización o volver a cargar y revalidar las tablas, puede afectar al comportamiento y al resultado de la tarea. Algunos de los cambios de comportamiento conocidos son los siguientes:

Al detener la tarea de replicación mientras la operación de resincronización está en curso:

  • La operación de resincronización no se reanuda automáticamente. Deberá reiniciarla de nuevo.

  • Las operaciones de resincronización futuras se ejecutan según la programación configurada.

  • Las correcciones incompletas se intentarán en el siguiente período de programación de la resincronización.

Al volver a cargar una tabla en la base de datos:

  • La operación de resincronización omite cualquier tabla que se esté cargando de nuevo.

  • Se ignoran los errores de validación anteriores de una tabla que se ha vuelto a cargar.

  • La nueva validación comienza una vez finalizada la acción de recarga.

Al volver a validar una tabla en la base de datos:

  • Se restablecen todas las estadísticas de la operación de resincronización.

  • Se ignoran los errores de validación anteriores de una tabla que se ha vuelto a validar.

nota

Al actualizar o mover una tarea a la versión 3.6.1 o superior de DMS, los errores de la tabla awsdms_control.awsdms_validation_failures_v1 no se vuelven a sincronizar. Solo se vuelven a sincronizar los errores de la tabla awsdms_validation_failures_v2. Para volver a sincronizar los errores de la tabla awsdms_control.awsdms_validation_failures_v2, debe volver a cargar la tarea, volver a cargar una o más tablas en la tarea o volver a validar una o más tablas. Para obtener más información, consulte los enlaces siguientes:

  • Para volver a cargar una tarea, consulte Referencia de la API StartReplicationTask.

  • Para volver a cargar una o más tablas en una tarea, consulte reload-tables en la documentación de la Referencia de comandos de la CLI de AWS.

  • Para volver a validar una o más tablas, consulte la opción validate-only en la sección reload-tables de la documentación de la Referencia de comandos de la CLI de AWS.

.

Reglas de expresiones cron

Para configurar las operaciones de resincronización de datos durante una tarea de replicación en AWS DMS, puede utilizar las reglas de expresiones cron. Estas reglas le permiten personalizar los intervalos de tiempo de resincronización y programarlos según las necesidades de su empresa. Puede utilizar varios parámetros, como minutos, horas, días, meses y días de la semana. Las reglas de expresión cron para cada parámetro son:

Minutos:
  • Rango de minutos entre 0 y 59.

  • Puede usar (-), or/and para especificar el rango. Máximo de 10 elementos separados por una coma (,).

  • Ejemplos de:

    • 2-5 es igual a 2,3,5,5.

    • 1-2,3-4,5,7-10 es un rango válido.

    • 1,2,3,4,5,6,7,8,9,10 es un rango válido.

    • 1,2,3,4,5,6,7,8,9,10,11 no es un rango válido. La operación de resincronización se omite después del décimo elemento del rango.

  • Puede usar (*). Ejemplo: * es igual a 0-59.

  • Solo puede usar (/) en combinación con (-) o (*).

    Ejemplos de:

    • 2-7/2 es igual a 2,4,6.

    • */15 es igual a 0,15,30,45.

Horas:

Igual que Minutos pero el intervalo válido va de 0 a 23.

Días:
  • Igual que Minutos pero el intervalo válido va de 1 a 31.

  • Se admite el uso de L en la configuración de resincronización. Se interpreta como el último día del mes. No debe usarlo en combinación con otra sintaxis.

Meses:

Igual que Minutos pero el intervalo válido va de 1 a 12.

Días de la semana:
  • Igual que Minutos pero el intervalo válido va de 0 a 6.

  • No se puede añadir un valor de cadena para el nombre de la semana.