Quero resolver o erro "Last Error Replication task out of memory" que recebo quando executo uma tarefa de replicação do AWS Database Migration Service (AWS DMS).
Resolução
Identifique a causa do erro
Para identificar a causa do erro "Last Error Replication task out of memory", analise os logs de tarefas do AWS DMS.
Para resolver esse erro, conclua a resolução que melhor se adequa ao seu problema.
Antes de fazer modificações, você deve interromper sua tarefa. Depois de fazer as modificações, retome a tarefa. Se a tarefa for interrompida durante a fase de carga total, as tabelas que estiverem em andamento serão recarregadas do zero.
Altere as configurações da tarefa ou os parâmetros relacionados à memória
Modifique as seguintes configurações de tarefa ou parâmetros relacionados à memória que exigem maior capacidade de memória:
- Configurações de objetos binários grandes (large binary object, LOB)
- Parâmetros de validação, como ThreadCount e PartitionSize
- Parâmetros de thread paralelos, como ParallelLoadThreads, ParallelLoadBufferSize, ParallelLoadQueuesPerThread, ParallelApplyThreads, ParallelApplyBufferSize e ParallelApplyQueuesPerThread
- Parâmetros de aplicação em lote, como BatchApplyTimeoutMin, BatchApplyTimeoutMax, BatchApplyMemoryLimit e BatchSplitSize
- Outras configurações de tarefa relacionadas à memória, como MinTransactionSize, MemoryLimitTotal, MemoryKeepTime e StatementCacheSize
Para obter mais informações sobre as configurações e parâmetros de tarefas anteriores, consulte Como faço para otimizar o uso de memória do AWS DMS para migração?
Aumente sua classe de instância de replicação com base nas métricas do CloudWatch
Verifique as métricas do Amazon CloudWatch FreeableMemory e SwapUsage da instância de replicação. Se FreeableMemory diminuir ou SwapUsage aumentar ou flutuar, aumente o tamanho da sua instância de replicação.
Também é possível usar instâncias otimizadas para memória em workloads com uso intensivo de memória, como migrações e replicações contínuas de transações de alto throughput.
Divida uma única tarefa em várias tarefas com base no tamanho dos dados que são migrados e na quantidade de memória necessária
Se a instância de replicação tiver várias tarefas, é possível usar a métrica MemoryUsage para verificar a quantidade de memória que a tarefa consome. Para descobrir por que a tarefa retém memória na fase de captura de dados de alteração (change data capture, CDC), compare CDCChangesMemorySource e CDCChangesMemoryTarget. Solucione o problema do endpoint respectivo.
Quando várias tarefas estiverem em execução na instância de replicação, realize uma ou mais das seguintes ações:
- Reduza o número e o tipo de tarefas que estão sendo executadas na instância de replicação.
- Mova a tarefa com falha para uma instância de replicação diferente e tente novamente.
- Aumente o tamanho da sua instância de replicação.
Para tarefas que têm várias tabelas carregadas em paralelo ou que migram várias tabelas e esquemas, realize uma ou mais das seguintes ações:
- Reduza o número de tabelas que você carrega em paralelo.
- Reduza o número total de tabelas e esquemas que você migra.
- Use uma tarefa diferente em uma instância de replicação diferente para descarregar a migração de algumas das tabelas e esquemas.
- Aumente o tamanho da sua instância de replicação.
Informações relacionadas
Configurações de tarefa de metadados de destino
Configurações de ajuste de processamento de alterações
Modificar uma instância de replicação