¿Cuándo puedo agregar objetos secundarios a una base de datos de destino durante la migración de AWS DMS?

Última actualización: 19-08-2022

¿En qué etapa de la migración puedo agregar objetos secundarios a mi base de datos de destino con AWS Database Migration Service (AWS DMS)? Además, ¿qué configuración de tareas puedo usar para crear objetos secundarios en la base de datos de destino?

Descripción corta

AWS DMS crea tablas en la base de datos de destino mediante la opción TargetTablePrepMode. Cuando AWS DMS crea tablas de destino, migra solo los objetos que necesita para migrar datos de manera eficaz al destino. Por ejemplo, AWS DMS crea tablas, claves principales y, en algunos casos, índices únicos. Sin embargo, no crea índices secundarios, restricciones de claves no principales, valores predeterminados de datos ni cuentas de usuario. Para obtener más información, consulte Foreign keys and secondary indexes are missing (Faltan claves externas e índices secundarios).

Si crea tablas manualmente en el destino antes de la migración, se recomienda eliminar los objetos secundarios, como los índices secundarios, antes de que comience la migración.

Nota: Esto no se aplica a una tarea exclusiva de captura de datos de cambios (change data capture, CDC).

Por lo tanto, para garantizar que la migración se realice correctamente y mejorar el rendimiento de las tareas, es importante que sepa cuándo crear objetos secundarios. El momento varía según el método de migración que utilice la tarea:

  • Solo carga completa (migración de datos existentes)
  • Carga completa y CDC (Migrar los datos existentes y replicar los cambios en curso)
  • CDC (replicar solo los cambios en los datos)

Resolución

Solo carga completa

Para una tarea de solo carga completa, se recomienda eliminar las claves principales y todos los objetos secundarios antes del inicio de la migración. No cree estos objetos hasta que se complete la carga completa. Si tiene objetos secundarios en la base de datos de destino durante la carga completa, es posible que observe una sobrecarga de mantenimiento adicional.

Si tiene claves externas en el destino, esto puede provocar un error en la tarea. Esto ocurre porque la tarea carga grupos de tablas juntas sin un orden específico, a menos que se haya especificado manualmente en las asignaciones de tablas.

Del mismo modo, los desencadenadores de inserción, actualización o eliminación pueden provocar errores si están presentes en la base de datos de destino. Por ejemplo, una inserción de fila que se desencadena mediante un desencadenador de inserción en una tabla previamente cargada puede provocar filas duplicadas. Otros tipos de desencadenadores también afectan al rendimiento porque provocan un procesamiento adicional.

Carga completa y CDC

Para las tareas de carga completa y de CDC, se recomienda descartar todos los objetos secundarios antes de que comience la migración. Sin embargo, debe aplicar objetos secundarios en la base de datos de destino en diferentes fases de la migración.

Revise las etapas de la migración de tareas de CDC y carga completa, y en qué etapa aplicar objetos secundarios específicos:

  • The full load of existing data (Carga completa de los datos existentes): agregue índices secundarios después de que la tarea haya completado la carga completa, pero antes de que aplique los cambios capturados en caché.
  • The application of cached changes (Aplicación de cambios en caché): agregue claves externas (restricciones de integridad referencial) después de que la tarea haya aplicado los cambios en la memoria caché.
  • Ongoing replication (Replicación continua): cree disparadores después de que se complete la migración y antes de la transición de la aplicación.

Mientras la carga completa está en curso, los cambios que realice en las tablas que se están cargando se almacenan en caché. Estos cambios en la caché se aplican cuando se completa la carga completa de la tabla. Después de que se complete la carga completa y se apliquen los cambios en la caché, las tablas de destino serán coherentes transaccionalmente. A continuación, AWS DMS comienza la fase de replicación en curso. Para obtener más información, consulte Vista general de AWS DMS.

Para detener la tarea durante la migración, utilice esta configuración de tareas:

  • Utilice StopTaskCachedChangesNotApplied para detener la tarea antes de aplicar los cambios en la caché.
  • Utilice StopTaskCachedChangesApplied para detener la tarea después de aplicar los cambios en la caché.

Nota: Puede activar StopTaskCachedChangesNotApplied y StopTaskCachedChangesApplied mediante la Interfaz de la línea de comandos de AWS (AWS CLI). Si recibe errores al ejecutar comandos de AWS CLI, asegúrese de que utiliza la versión más reciente de AWS CLI.

Solo tareas de CDC

Para las tareas exclusivas de CDC, puede crear los índices secundarios y las claves externas en la base de datos de destino antes de la migración. A continuación, cree los desencadenadores en el destino después de que se complete la migración y antes de la transición de la aplicación.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?