Quiero resolver el error "Last Error Replication task out of memory" que recibo cuando ejecuto una tarea de replicación de AWS Database Migration Service (AWS DMS).
Resolución
Identificación de la causa del error
Para identificar la causa del error "Last Error Replication task out of memory", revisa los registros de tareas de AWS DMS.
Para resolver este error, completa la resolución que mejor se adapte a tu problema.
Antes de realizar modificaciones, debes detener la tarea. Tras realizar las modificaciones, reanuda la tarea. Si la tarea se detiene durante la fase de carga completa, las tablas en curso se vuelven a cargar desde cero.
Cambio de la configuración de las tareas o los parámetros relacionados con la memoria
Modifica la configuración de las tareas o los parámetros relacionados con la memoria que requieren una mayor capacidad de memoria:
- Configuración de objetos binarios grandes (LOB)
- Parámetros de validación, como ThreadCount y PartitionSize
- Parámetros de subprocesos paralelos, como ParallelLoadThreads, ParallelLoadBufferSize, ParallelLoadQueuesPerThread, ParallelApplyThreads, ParallelApplyBufferSize y ParallelApplyQueuesPerThread
- Parámetros de aplicación por lotes, como BatchApplyTimeoutMin, BatchApplyTimeoutMax, BatchApplyMemoryLimit y BatchSplitSize
- Otras configuraciones de tareas relacionadas con la memoria, como MinTransactionSize, MemoryLimitTotal, MemoryKeepTime y StatementCacheSize.
Para obtener información sobre la configuración y los parámetros de las tareas anteriores, consulta ¿Cómo optimizo el uso de la memoria de AWS DMS para la migración?
Aumento de la clase de instancia de replicación en función de las métricas de CloudWatch
Comprueba las métricas FreeableMemory y SwapUsage de Amazon CloudWatch de la instancia de replicación. Si FreeableMemory disminuye o SwapUsage aumenta o fluctúa, aumenta el tamaño de la instancia de replicación.
Puedes usar instancias optimizadas para la memoria para cargas de trabajo que consumen mucha memoria, como las migraciones y replicaciones continuas de transacciones de alto rendimiento.
División de una sola tarea en varias tareas según el tamaño de los datos que se migran y la cantidad de memoria necesaria
Si la instancia de replicación tiene varias tareas, puedes usar la métrica MemoryUsage para ver la cantidad de memoria que consume la tarea. Para determinar por qué la tarea contiene memoria en la fase de captura de datos de cambios (CDC), compara CDCChangesMemorySource y CDCChangesMemoryTarget. Soluciona los problemas del punto de enlace correspondiente.
Cuando se ejecutan varias tareas en la instancia de replicación, realiza una o más de las siguientes acciones:
- Reduce la cantidad y el tipo de tareas que se ejecutan en la instancia de replicación.
- Mueve la tarea fallida a una instancia de replicación diferente y vuelve a intentarlo.
- Aumenta el tamaño de la instancia de replicación.
Para las tareas que tienen varias tablas que se cargan en paralelo o que migran muchas tablas y esquemas, realiza una o más de las siguientes acciones:
- Reduce el número de tablas que cargas en paralelo.
- Reduce el número total de tablas y esquemas que migras.
- Utiliza una tarea diferente en una instancia de replicación diferente para descargar la migración de algunas de las tablas y esquemas.
- Aumenta el tamaño de la instancia de replicación.
Información relacionada
Configuración de las tareas de los metadatos de destino
Configuración de ajuste del procesamiento de cambios
Modificación de una instancia de replicación