Monitoramento de tarefas do AWS DMS - AWS Database Migration Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Monitoramento de tarefas do AWS DMS

O monitoramento é uma parte importante da manutenção da confiabilidade, da disponibilidade e da performance do AWS DMS e de suas soluções da AWS. É necessário coletar dados de monitoramento de todas as partes de sua solução da AWS para depurar uma falha de vários pontos com mais facilidade, caso ocorra. A AWS fornece várias ferramentas para monitorar seus recursos e tarefas do AWS DMS e responder a possíveis incidentes:

Eventos e notificações do AWS DMS

O AWS DMS utiliza o Amazon Simple Notification Service (Amazon SNS) para fornecer notificações quando ocorre um evento do AWS DMS, por exemplo, a criação ou a exclusão de uma instância de replicação. O AWS DMS agrupa eventos em categorias que você pode assinar, para ser notificado quando ocorre um evento nessa categoria. Por exemplo, se você assinar a categoria Criação de uma instância de replicação específica, será notificado sempre que ocorrer um evento relacionado à criação que afete a instância de replicação. É possível trabalhar com essas notificações em qualquer formato compatível com o Amazon SNS em uma região da AWS, como uma mensagem de e-mail, uma mensagem de texto ou uma chamada para um endpoint HTTP. Para obter mais informações, consulte Como trabalhar com eventos e notificações do Amazon SNS no AWS Database Migration Service.

Status da tarefa

É possível monitorar o andamento de uma tarefa verificando o status da tarefa e monitorando a tabela de controle da tarefa. O status da tarefa indica a condição de uma tarefa do AWS DMS e seus recursos associados. Ele inclui indicações se a tarefa está sendo criada, iniciada, está em execução ou interrompida. Ele também inclui o estado atual das tabelas que a tarefa está migrando, por exemplo, se uma carga completa de uma tabela foi iniciada ou está em andamento e detalhes como o número de inserções, exclusões e atualizações que ocorreram para a tabela. Para obter mais informações sobre a condição de recurso de tarefa e tarefa de monitoramento, consulte Status da tarefa e Estado da tabela durante as tarefas. Para obter mais informações sobre tabelas de controle, consulte Configurações de tarefa de tabela de controle.

Alarmes e logs do Amazon CloudWatch

Ao utilizar os alarmes do Amazon CloudWatch, você observa uma ou mais métricas de tarefa em um período especificado. Se a métrica ultrapassar um controle de utilização especificado, uma notificação será enviada para um tópico do Amazon SNS. Os alarmes do CloudWatch não invocam ações só porque estão em um determinado estado. Em vez disso, o estado precisa ter mudado e ser mantido por um determinado número de períodos. O AWS DMS também utiliza o CloudWatch para registrar em log as informações de tarefas durante o processo de migração. É possível utilizar a AWS CLI ou a API do AWS DMS para visualizar informações sobre os logs de tarefas. Para obter mais informações sobre como utilizar o CloudWatch com o AWS DMS, consulte Monitoramento de tarefas de replicação utilizando o Amazon CloudWatch. Para obter mais informações sobre as métricas de monitoramento do AWS DMS, consulte Métricas do AWS Database Migration Service. Para obter mais informações sobre como utilizar os logs de tarefas do AWS DMS, consulte Visualização e gerenciamento dos logs de tarefas do AWS.

Logs do Time Travel

Para registrar em log e depurar tarefas de replicação, é possível utilizar o Time Travel do AWS DMS. Nessa abordagem, você utiliza o Amazon S3 para armazenar logs e criptografá-los utilizando as chaves de criptografia. É possível recuperar os logs do S3 utilizando filtros de data e hora e visualizar, baixar e ofuscar os logs conforme necessário. Ao fazer isso, é possível “voltar no tempo” para investigar as atividades do banco de dados.

É possível utilizar o Time Travel com os endpoints de origem do PostgreSQL compatível com o DMS e com os endpoints de destino do PostgreSQL e do MySQL compatíveis com o DMS. É possível ativar o Time Travel somente para tarefas de carga máxima e de CDC e para tarefas somente de CDC. Para ativar o Time Travel ou modificar qualquer configuração existente do Time Travel, interrompa a tarefa.

Para obter mais informações sobre os logs do Time Travel, consulte Configurações de tarefa do Time Travel. Para obter as práticas recomendadas para a utilização dos logs do Time Travel, consulte Solução de problemas de tarefas de replicação com o Time Travel.

AWS CloudTrailLogs do

O AWS DMS é integrado ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, por um perfil do IAM ou por um serviço da AWS no AWS DMS. O CloudTrail captura todas as chamadas de API para o AWS DMS como eventos, incluindo as chamadas no console do AWS DMS e as chamadas de código para operações da API do AWS DMS. Se você criar uma trilha, poderá habilitar a entrega contínua de eventos do CloudTrail para um bucket do Amazon S3, incluindo eventos para o AWS DMS. Se você não configurar uma trilha, ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Event history (Histórico de eventos). utilizando as informações coletadas pelo CloudTrail, é possível determinar a solicitação feita para o AWS DMS, o endereço IP no qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita, além de detalhes adicionais. Para obter mais informações, consulte Registrar em log chamadas de API do AWS DMS com o AWS CloudTrail.

Logs de banco de dados

É possível exibir, fazer download e observar logs de banco de dados para seus endpoints de tarefas utilizando o AWS Management Console, a AWS CLI, ou a API para seu serviço de banco de dados da AWS. Para obter mais informações, consulte a documentação do seu serviço de banco de dados na Documentação da AWS.

Para obter mais informações, consulte os tópicos a seguir.

Status da tarefa

O status da tarefa indica a condição da tarefa. A tabela a seguir mostra os possíveis status que uma tarefa pode ter:

Status da tarefa Descrição

Criando

O AWS DMS está criando a tarefa.

Running

A tarefa está executando as ações de migração especificadas.

Stopped

A tarefa foi interrompida.

Stopping

A tarefa está sendo interrompida. Em geral, esta é uma indicação de intervenção do usuário na tarefa.

Deleting

A tarefa está sendo excluída, normalmente a partir de uma solicitação de intervenção do usuário.

Failed

A tarefa falhou. Para obter mais informações, consulte os arquivos de log da tarefa.

Erro

A tarefa foi interrompida devido a um erro. Uma breve descrição do erro da tarefa é fornecida na última seção de mensagens de falha da guia Visão geral.

Em execução com erros

A tarefa está sendo executada com um status de erro. Isso geralmente indica que uma ou mais tabelas na tarefa não puderam ser migradas. A tarefa continua carregando outras tabelas de acordo com as regras de seleção.

Starting

A tarefa está se conectando à instância de replicação e aos endpoints de origem e de destino. Todos os filtros e as transformações estão sendo aplicados.

Ready

A tarefa está pronta para ser executada. Este status geralmente ocorre depois do status “Creating”.

Modifying

A tarefa está sendo alterada, normalmente devido a uma ação do usuário que modificou as definições da tarefa.

Movendo

A tarefa está em processo de transferência para outra instância de replicação. A replicação permanece nesse estado até que a transferência seja concluída. A exclusão da tarefa é a única operação permitida na tarefa de replicação enquanto ela está sendo movida.

Falha na movimentação

A movimentação da tarefa falhou por algum motivo, como não haver espaço de armazenamento suficiente na instância de replicação de destino. Quando uma tarefa de replicação está nesse estado, ela pode ser iniciada, modificada, movida ou excluída.

no dispositivo

A migração do banco de dados especificada para essa tarefa está sendo testada em resposta à execução da operação StartReplicationTaskAssessmentRun ou StartReplicationTaskAssessment.

A barra de status de tarefa fornece uma estimativa do andamento da tarefa. A qualidade dessa estimativa depende da qualidade das estatísticas de tabela do banco de dados de origem: quanto melhores as estatísticas de tabela, mais precisa a estimativa. Para tarefas com apenas uma tabela que não tem estatísticas sobre linhas estimadas, não é possível fornecer qualquer estimativa sobre a porcentagem de conclusão. Nesse caso, o estado da tarefa e a indicação de linhas carregadas podem ser utilizados para confirmar que a tarefa realmente está sendo executada e progredindo.

Observe que a coluna "última atualização" do console do DMS indica somente a hora em que o AWS DMS atualizou o registro das estatísticas de uma tabela pela última vez. Ela não indica a hora da última atualização da tabela.

Além de utilizar o console do DMS, é possível gerar uma descrição das tarefas de replicação atuais, incluindo o status da tarefa, utilizando o comando aws dms describe-replication-tasks na AWS CLI, conforme mostrado no exemplo a seguir.

{ "ReplicationTasks": [ { "ReplicationTaskIdentifier": "moveit2", "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", "MigrationType": "full-load", "TableMappings": ...output omitted... , "ReplicationTaskSettings": ...output omitted... , "Status": "stopped", "StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED", "ReplicationTaskCreationDate": 1590524772.505, "ReplicationTaskStartDate": 1590619805.212, "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII", "ReplicationTaskStats": { "FullLoadProgressPercent": 100, "ElapsedTimeMillis": 0, "TablesLoaded": 0, "TablesLoading": 0, "TablesQueued": 0, "TablesErrored": 0, "FreshStartDate": 1590619811.528, "StartDate": 1590619811.528, "StopDate": 1590619842.068 } } ] }

Estado da tabela durante as tarefas

O console do AWS DMS atualiza as informações sobre o estado das tabelas durante a migração. A tabela a seguir mostra os possíveis valores para o estado:

Instância de replicação do AWS Database Migration Service
Estado Descrição

Table does not exist

O AWS DMS não encontrou a tabela no endpoint de origem.

Before load

O processamento de carga completa foi ativado, mas ainda não foi iniciado.

Full load

O processamento de carga completa está em andamento.

Table completed

O carregamento total foi concluído.

Table cancelled

O carregamento da tabela foi cancelado.

Erro de tabela

Ocorreu um erro durante o carregamento da tabela.

Monitoramento de tarefas de replicação utilizando o Amazon CloudWatch

É possível utilizar os alarmes ou eventos do Amazon CloudWatch para acompanhar mais de perto a migração. Para obter mais informações sobre o Amazon CloudWatch, consulte O que são o Amazon CloudWatch, o Amazon CloudWatch Events e o Amazon CloudWatch Logs? no Guia do usuário do Amazon CloudWatch. Observe que a utilização do Amazon CloudWatch pode ser cobrada.

Se a tarefa de replicação não criar logs do CloudWatch, consulte AWS DMSnão cria CloudWatch registros no guia de solução de problemas.

O console do AWS DMS mostra as estatísticas básicas do CloudWatch de cada tarefa, incluindo o status das tarefas, porcentagens de conclusão, tempo decorrido e estatísticas de tabelas, como mostramos a seguir. Selecione a tarefa de replicação e selecione a guia Métricas do CloudWatch.

Para visualizar e modificar as configurações do log de tarefas do CloudWatch, escolha Modificar o registro em log de tarefas. Para obter mais informações, consulte Configurações de registro de tarefa.

Monitoramento do AWS DMS

O console do AWS DMS mostra as estatísticas de desempenho de cada tabela, incluindo o número de inserções, as exclusões e as atualizações, quando você seleciona a guia Estatísticas da tabela.

Monitoramento do AWS DMS

Além disso, se você selecionar uma instância de replicação na página Instância de replicação, poderá visualizar as métricas de desempenho da instância selecionando a guia Métricas do CloudWatch.

Monitoramento do AWS DMS

Métricas do AWS Database Migration Service

O AWS DMS fornece as seguintes estatísticas:

  • Métricas do host: estatísticas de desempenho e de utilização do host de replicação, fornecidas pelo Amazon CloudWatch. Para obter uma lista completa das métricas disponíveis, consulte Métricas de instâncias de replicação.

  • Métricas de tarefas de replicação: estatísticas das tarefas de replicação incluindo as alterações de entrada e confirmadas e a latência entre o host de replicação e os bancos de dados de origem e de destino. Para obter uma lista completa das métricas disponíveis, consulte Métricas de tarefas de replicação.

  • Métricas de tabelas: estatísticas das tabelas que estão sendo migradas, incluindo o número de inserções, atualizações, exclusões e instruções DDL concluídas.

As métricas de tarefas são divididas em estatísticas entre o host de replicação e o endpoint de origem, e estatísticas entre o host de replicação e o endpoint de destino. É possível determinar a estatística total de uma tarefa somando as duas estatísticas relacionadas. Por exemplo, é possível determinar a latência total, ou o atraso de réplica, para uma tarefa combinando os valores CDCLatencySource e CDCLatencyTarget.

Os valores das métricas de uma tarefa podem ser influenciados pela atividade atual do banco de dados de origem. Por exemplo, se uma transação foi iniciada, mas não foi confirmada, a métrica CDCLatencySource continua aumentando até que a transação seja confirmada.

Para a instância de replicação, a métrica FreeableMemory requer esclarecimento. Memória passível de liberação não é indicação de memória real livre disponível. É a memória que está em uso no momento que pode ser liberada e utilizada para outros fins. É uma combinação de buffers e cache em uso na instância de replicação.

Embora a métrica FreeableMemory não reflita a memória real livre disponível, a combinação das métricas FreeableMemory e SwapUsage pode indicar se a instância de replicação está sobrecarregada.

Monitore as seguintes condições destas duas métricas:

  • A métrica FreeableMemory se aproximando de zero.

  • A métrica SwapUsage aumenta ou flutua.

Se você encontrar uma dessas duas condições, mude para uma instância de replicação maior. Você também deve reduzir o número e o tipo de tarefas em execução na instância de replicação. Tarefas de carregamento total exigem mais memória do que tarefas que apenas replicam alterações.

Para estimar aproximadamente os requisitos reais de memória para uma tarefa de migração do AWS DMS, é possível utilizar os parâmetros a seguir.

Colunas de LOB

O número médio de colunas de LOB em cada tabela no escopo de migração.

Número máximo de tabelas para carga em paralelo

O número máximo de tabelas que o AWS DMS carrega em paralelo em uma tarefa.

O valor padrão é 8.

Tamanho do bloco de LOB

O tamanho dos blocos de LOB, em kilobytes, que o AWS DMS utiliza para replicar dados no banco de dados de destino.

Taxa de confirmação durante carga máxima

O número máximo de registros que o AWS DMS pode transferir em paralelo.

O valor padrão é 10.000.

Tamanho do LOB

O tamanho máximo de um LOB individual, em kilobytes.

Tamanho da matriz em massa

O número máximo de linhas que são buscadas ou processadas pelo driver de endpoint. Esse valor depende das configurações do driver.

O valor padrão é 1,000.

Depois de determinar esses valores, é possível utilizar um dos métodos a seguir para estimar a quantidade de memória necessária para a tarefa de migração. Esses métodos dependem da opção escolhida para as Configurações da coluna LOB na tarefa de migração.

  • Para Modo LOB completo, utilize a fórmula a seguir.

    Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB chunk size) * (Commit rate during full load)

    Considere um exemplo em que as tabelas de origem incluem, em média, 2 colunas LOB, e o tamanho dos blocos de LOB é 64 KB. Se você utilizar os valores padrão para Maximum number of tables to load in parallel e Commit rate during full load, a quantidade de memória necessária para a tarefa será a seguinte.

    Required memory = 2 * 8 * 64 * 10,000 = 10,240,000 KB

    nota

    Para reduzir o valor da Taxa de confirmação durante a carga máxima, abra o console do AWS DMS, escolha Tarefas de migração de banco de dados e crie ou modifique uma tarefa. Expanda Configurações avançadas e insira seu valor para a Taxa de confirmação durante a carga máxima.

  • Para Modo LOB limitado, utilize a fórmula a seguir.

    Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB size) * (Bulk array size)

    Considere um exemplo em que as tabelas de origem incluem, em média, 2 colunas LOB, e o tamanho máximo de um LOB individual é 4.096 KB. Se você utilizar os valores padrão para Maximum number of tables to load in parallel e Bulk array size, a quantidade de memória necessária para a tarefa será a seguinte.

    Required memory = 2 * 8 * 4,096 * 1,000 = 65,536,000 KB

Para que o AWS DMS execute essas conversões de forma ideal, a CPU deve estar disponível quando as conversões ocorrerem. Sobrecarregar a CPU e não ter recursos de CPU suficientes pode resultar em migrações lentas. O AWS DMS pode consumir muita CPU, especialmente ao executar migrações e replicações heterogêneas, como migrações do Oracle para o PostgreSQL. A classe da instância de replicação C4 pode ser uma boa opção para essas situações. Para obter mais informações, consulte Escolhendo a instância de replicação AWS DMS certa para sua migração.

Métricas de instâncias de replicação

O monitoramento de instâncias de replicação inclui métricas do Amazon CloudWatch para as seguintes estatísticas:

Métrica

Descrição

AvailableMemory

Uma estimativa da memória disponível para iniciar novas aplicações, sem troca. Para obter mais informações, consulte o valor de MemAvailable na seção /proc/memInfo da página Linux man-pages.

Unidade: bytes

CPUAllocated

A porcentagem de CPU alocada de forma máxima para a tarefa (0 significa que não há limite).

O AWS DMS eleva essa métrica em relação às dimensões combinadas de ReplicationInstanceIdentifer e ReplicationTaskIdentifier no console do CloudWatch. Utilize a categoria ReplicationInstanceIdentifier, ReplicationTaskIdentifier para visualizar essa métrica.

Unidades: percentual

CPUUtilization

O percentual de vCPU alocada (CPU virtual) alocada em utilização na instância no momento.

Unidades: percentual

DiskQueueDepth

O número de solicitações de leitura/gravação (E/Ss) pendentes aguardando para acessar o disco.

Unidade: contagem

FreeStorageSpace

A quantidade de espaço de armazenamento disponível.

Unidade: bytes

FreeMemory

A quantidade de memória física disponível para utilização por aplicativos, cache de páginas e para as estruturas de dados de propriedade do kernel. Para obter mais informações, consulte o valor de MemFree na seção /proc/memInfo da página Linux man-pages.

Unidade: bytes

FreeableMemory

A quantidade de memória de acesso aleatório disponível.

Unidade: bytes

MemoryAllocated

A alocação máxima de memória para a tarefa (0 significa que não há limites).

O AWS DMS eleva essa métrica em relação às dimensões combinadas de ReplicationInstanceIdentifer e ReplicationTaskIdentifier no console do CloudWatch. Utilize a categoria ReplicationInstanceIdentifier, ReplicationTaskIdentifier para visualizar essa métrica.

Unidades: MiB

WriteIOPS

O número médio de operações de E/S de gravação de disco por segundo.

Unidade: contagem/segundo

ReadIOPS

O número médio de operações E/S de leitura de disco por segundo.

Unidade: contagem/segundo

WriteThroughput

O número médio de bytes gravados no disco por segundo.

Unidade: bytes/segundo

ReadThroughput

O número médio de bytes lidos do disco por segundo.

Unidade: bytes/segundo

WriteLatency

O tempo médio necessário por operação de I/O (saída) de disco.

Unidade: milissegundos

ReadLatency

O tempo médio necessário por operação de I/O (entrada) de disco.

Unidade: milissegundos

SwapUsage

A quantidade de espaço de troca utilizada na instância de replicação.

Unidade: bytes

NetworkTransmitThroughput

O tráfego de rede de saída (transmissão) na instância de replicação, incluindo o tráfego do banco de dados cliente e o tráfego do AWS DMS utilizados para monitoramento e replicação.

Unidade: bytes/segundo

NetworkReceiveThroughput

O tráfego de rede de entrada (recebimento) na instância de replicação, incluindo o tráfego do banco de dados cliente e o tráfego do AWS DMS utilizados para monitoramento e replicação.

Unidade: bytes/segundo

Métricas de tarefas de replicação

O monitoramento de tarefas de replicação inclui métricas para as seguintes estatísticas.

Métrica

Descrição

FullLoadThroughputBandwidthTarget

Dados de saída transmitidos de uma carga máxima para o destino em KB por segundo.

FullLoadThroughputRowsTarget

As alterações de saída de uma carga máxima para o destino em linhas por segundo.

CDCIncomingChanges

O número total de eventos de alteração em um ponto no tempo aguardando para serem aplicados ao destino. Observe que isso não é o mesmo que uma medida da taxa de alteração de transação do endpoint de origem. Um número alto para essa métrica normalmente indica que o AWS DMS não consegue aplicar as alterações capturadas de maneira oportuna, provocando uma alta latência no destino.

CDCChangesMemorySource

O número de linhas que se acumulam na memória esperando para serem confirmadas a partir da origem. É possível visualizar essa métrica junto com CDCChangesDiskSource.

CDCChangesMemoryTarget

O número de linhas que se acumulam na memória esperando para serem confirmadas no destino. É possível visualizar essa métrica junto com CDCChangesDiskTarget.

CDCChangesDiskSource

O número de linhas que se acumulam no disco esperando para serem confirmadas a partir da origem. É possível visualizar essa métrica junto com CDCChangesMemorySource.

CDCChangesDiskTarget

O número de linhas que se acumulam no disco esperando para serem confirmadas no destino. É possível visualizar essa métrica junto com CDCChangesMemoryTarget.

CDCThroughputBandwidthTarget

Dados de saída transmitidos para o destino em KB por segundo. CDCThroughputBandwidth registra dados de saída transmitidos em pontos de amostragem. Se nenhum tráfego de rede da tarefa for encontrado, o valor será zero. Como a CDC não emite transações prolongadas, o tráfego de rede pode não ser registrado.

CDCThroughputRowsSource

As alterações das tarefas de entrada a partir de origem em linhas por segundo.

CDCThroughputRowsTarget

As alterações da tarefa de saída para o destino em linhas por segundo.

CDCLatencySource

O intervalo, em segundos, entre o último evento capturado no endpoint de origem e o timestamp atual do sistema da instância do AWS DMS. CDCLatencySource representa a latência entre a origem e a instância de replicação. CDCLatencySource alta significa que o processo de captura de alterações da origem está atrasado. Para identificar a latência em uma replicação contínua, é possível visualizar essa métrica junto com CDCLatencyTarget. Se CDCLatencySource e CDCLatencyTarget estiverem altas, investigue a CDCLatencySource primeiro.

A CDCSourceLatency pode ser 0 quando não há atraso na replicação entre a origem e a instância de replicação. A CDCSourceLatency também pode se tornar zero quando a tarefa de replicação tenta ler o próximo evento no log de transações da origem e não há novos eventos em comparação com a última leitura na origem. Quando isso ocorre, a tarefa redefine a CDCSourceLatency como 0.

CDCLatencyTarget

O intervalo, em segundos, entre o primeiro timestamp de evento em espera de confirmação no destino e o timestamp atual da instância do AWS DMS. A latência do destino é a diferença entre a hora do servidor da instância de replicação e o ID do evento não confirmado mais antigo encaminhado para um componente de destino. Em outras palavras, a latência de destino é a diferença do timestamp entre a instância de replicação e o evento mais antigo aplicado, mas não confirmado pelo endpoint de TRG (99%). Quando a CDCLatencyTarget está alta, isso indica que o processo de aplicação de eventos de alteração no destino está atrasado. Para identificar a latência em uma replicação contínua, é possível visualizar essa métrica junto com a CDCLatencySource. Se a CDCLatencyTarget estiver alta, mas a CDCLatencySource não estiver alta, investigue se:

  • Não existe nenhuma chave primária ou índice no destino

  • Os gargalos de recursos ocorrem no destino ou na instância de replicação

  • Os problemas de rede residem entre a instância de replicação e o destino

CPUUtilization

A porcentagem de CPU utilizada por uma tarefa em vários núcleos. A semântica da tarefa CPUUtilization é um pouco diferente da replicação CPUUtilizaiton. Se uma vCPU for totalmente utilizada, isso indica 100%, mas se várias vCPUs estiverem em uso, o valor poderá estar acima de 100%.

Unidades: percentual

SwapUsage

A quantidade de troca utilizada no host.

Unidade: bytes

MemoryUsage

O grupo de controle (cgroup) memory.usage_in_bytes consumido por uma tarefa. O DMS utiliza cgroups para controlar o uso dos recursos do sistema, como memória e CPU. Essa métrica indica a utilização de memória de uma tarefa em megabytes dentro do cgroup alocado para essa tarefa. Os limites do cgroup são baseados nos recursos disponíveis para a classe da instância de replicação do DMS. memory.usage_in_bytes consiste no tamanho do conjunto residente (RSS), no cache e em componentes e troca da memória. O sistema operacional pode recuperar a memória cache, se necessário. É recomendável monitorar também a métrica da instância de replicação, AvailableMemory.

O AWS DMS eleva essa métrica em relação às dimensões combinadas de ReplicationInstanceIdentifer e ReplicationTaskIdentifier no console do CloudWatch. Utilize a categoria ReplicationInstanceIdentifier, ReplicationTaskIdentifier para visualizar essa métrica.

Visualização e gerenciamento dos logs de tarefas do AWS

É possível utilizar o Amazon CloudWatch para registrar em log as informações das tarefas durante um processo de migração do AWS DMS. O registro em log é ativado quando você seleciona as configurações de tarefa. Para obter mais informações, consulte Configurações de registro de tarefa.

Para visualizar logs de uma tarefa executada, siga estas etapas:

  1. Abra o console do AWS DMS e selecione Tarefas de migração de banco de dados no painel de navegação. A caixa de diálogo "Tarefas de migração de banco de dados" é exibida.

  2. Selecione o nome da tarefa. A caixa de diálogo "Detalhes da visão geral" é exibida.

  3. Localize a seção Logs de tarefa de migração e escolha Visualizar CloudWatch Logs.

Além disso, é possível utilizar a AWS CLI ou a API do AWS DMS para visualizar informações sobre logs de tarefas. Para fazer isso, utilize o comando describe-replication-instance-task-logs da AWS CLI ou a ação DescribeReplicationInstanceTaskLogs da API do AWS DMS.

Por exemplo, o seguinte comando da AWS CLI mostra os metadados do log de tarefas no formato JSON.

$ aws dms describe-replication-instance-task-logs \ --replication-instance-arn arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY

O seguinte é um exemplo de resposta do comando.

{ "ReplicationInstanceTaskLogs": [ { "ReplicationTaskArn": "arn:aws:dms:us-east-1:237565436:task:MY34U6Z4MSY52GRTIX3O4AY", "ReplicationTaskName": "mysql-to-ddb", "ReplicationInstanceTaskLogSize": 3726134 } ], "ReplicationInstanceArn": "arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY" }

Nessa resposta, há um único log de tarefas (mysql-to-ddb) associado à instância de replicação. O tamanho do log é 3.726.124 bytes.

É possível utilizar as informações retornadas por describe-replication-instance-task-logs para diagnosticar e solucionar problemas com logs de tarefas. Por exemplo, se você ativar o log de depuração detalhada de uma tarefa, o log de tarefas crescerá rapidamente, potencialmente consumindo todo o armazenamento disponível na instância de replicação, e fazendo com que o status da instância seja alterado para storage-full. Descrevendo os logs de tarefas, é possível determinar de quais você não precisa mais e excluí-los, liberando espaço de armazenamento.

Para excluir os logs de tarefas de uma tarefa, defina a tarefa com DeleteTaskLogs definido como true. Por exemplo, o JSON a seguir exclui os logs de tarefas ao modificar uma tarefa utilizando o comando modify-replication-task da AWS CLI ou a ação ModifyReplicationTask da API do AWS DMS.

{ "Logging": { "DeleteTaskLogs":true } }

Registrar em log chamadas de API do AWS DMS com o AWS CloudTrail

O AWS DMS é integrado ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, um perfil ou um serviço da AWS no AWS DMS. O CloudTrail captura todas as chamadas de API para o AWS DMS como eventos, incluindo as chamadas no console do AWS DMS e as chamadas de código para operações da API do AWS DMS. Se você criar uma trilha, poderá habilitar a entrega contínua de eventos do CloudTrail para um bucket do Amazon S3, incluindo eventos para o AWS DMS. Se você não configurar uma trilha, ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Event history (Histórico de eventos). utilizando as informações coletadas pelo CloudTrail, é possível determinar a solicitação feita para o AWS DMS, o endereço IP no qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita, além de detalhes adicionais.

Para saber mais sobre o CloudTrail, consulte o Guia do usuário do AWS CloudTrail.

Informações do AWS DMS no CloudTrail

O CloudTrail é ativado na sua conta da AWS quando ela é criada. Quando ocorre uma atividade no AWS DMS, essa atividade é registrada em um evento do CloudTrail com outros eventos de produtos da AWS em Event history (Histórico de eventos). É possível visualizar, pesquisar e baixar os eventos recentes na sua conta da AWS. Para obter mais informações, consulte Visualizar eventos com o histórico de eventos do CloudTrail.

Para obter um registro contínuo de eventos na conta da AWS, incluindo eventos do AWS DMS, crie uma trilha. Uma trilha permite que o CloudTrail entregue arquivos de log a um bucket do Amazon S3. Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as regiões da AWS. A trilha registra em log eventos de todas as regiões da AWS na partição da AWS e entrega os arquivos de log para o bucket do Amazon S3 especificado por você. Além disso, é possível configurar outros serviços da AWS para analisar mais ainda mais e agir com base nos dados de eventos coletados nos logs do CloudTrail. Para obter mais informações, consulte:

Todas as ações do AWS DMS são registradas pelo CloudTrail e são documentadas na Referência de API do AWS Database Migration Service. Por exemplo, as chamadas para as ações CreateReplicationInstance, TestConnection e StartReplicationTask geram entradas nos arquivos de log do CloudTrail.

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações de identidade ajudam a determinar:

  • Se a solicitação foi feita com credenciais de usuário raiz ou do usuário do IAM.

  • Se a solicitação foi feita com credenciais de segurança temporárias de um perfil ou de um usuário federado.

  • Se a solicitação foi feita por outro serviço da AWS.

Para obter mais informações, consulte Elemento userIdentity do CloudTrail.

Noções básicas sobre entradas de arquivos de log do AWS DMS

Uma trilha é uma configuração que permite a entrega de eventos como arquivos de log a um bucket do Amazon S3 especificado. Os arquivos de log do CloudTrail contêm uma ou mais entradas de log. Um evento representa uma única solicitação de qualquer origem e inclui informações sobre a ação solicitada, a data e a hora da ação, os parâmetros de solicitação e assim por diante. Os arquivos de log do CloudTrail não são um rastreamento de pilha ordenada das chamadas de API pública. Dessa forma, eles não são exibidos em uma ordem específica.

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra a ação RebootReplicationInstance.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:johndoe", "arn": "arn:aws:sts::123456789012:assumed-role/admin/johndoe", "accountId": "123456789012", "accessKeyId": "ASIAYFI33SINADOJJEZW", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-01T16:42:09Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:role/admin", "accountId": "123456789012", "userName": "admin" } } }, "eventTime": "2018-08-02T00:11:44Z", "eventSource": "dms.amazonaws.com", "eventName": "RebootReplicationInstance", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.64", "userAgent": "console.amazonaws.com", "requestParameters": { "forceFailover": false, "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE" }, "responseElements": { "replicationInstance": { "replicationInstanceIdentifier": "replication-instance-1", "replicationInstanceStatus": "rebooting", "allocatedStorage": 50, "replicationInstancePrivateIpAddresses": [ "172.31.20.204" ], "instanceCreateTime": "Aug 1, 2018 11:56:21 PM", "autoMinorVersionUpgrade": true, "engineVersion": "2.4.3", "publiclyAccessible": true, "replicationInstanceClass": "dms.t2.medium", "availabilityZone": "us-east-1b", "kmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", "replicationSubnetGroup": { "vpcId": "vpc-1f6a9c6a", "subnetGroupStatus": "Complete", "replicationSubnetGroupArn": "arn:aws:dms:us-east-1:123456789012:subgrp:EDHRVRBAAAPONQAIYWP4NUW22M", "subnets": [ { "subnetIdentifier": "subnet-cbfff283", "subnetAvailabilityZone": { "name": "us-east-1b" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-d7c825e8", "subnetAvailabilityZone": { "name": "us-east-1e" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-6746046b", "subnetAvailabilityZone": { "name": "us-east-1f" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-bac383e0", "subnetAvailabilityZone": { "name": "us-east-1c" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-42599426", "subnetAvailabilityZone": { "name": "us-east-1d" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-da327bf6", "subnetAvailabilityZone": { "name": "us-east-1a" }, "subnetStatus": "Active" } ], "replicationSubnetGroupIdentifier": "default-vpc-1f6a9c6a", "replicationSubnetGroupDescription": "default group created by console for vpc id vpc-1f6a9c6a" }, "replicationInstanceEniId": "eni-0d6db8c7137cb9844", "vpcSecurityGroups": [ { "vpcSecurityGroupId": "sg-f839b688", "status": "active" } ], "pendingModifiedValues": {}, "replicationInstancePublicIpAddresses": [ "18.211.48.119" ], "replicationInstancePublicIpAddress": "18.211.48.119", "preferredMaintenanceWindow": "fri:22:44-fri:23:14", "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE", "replicationInstanceEniIds": [ "eni-0d6db8c7137cb9844" ], "multiAZ": false, "replicationInstancePrivateIpAddress": "172.31.20.204", "patchingPrecedence": 0 } }, "requestID": "a3c83c11-95e8-11e8-9d08-4b8f2b45bfd5", "eventID": "b3c4adb1-e34b-4744-bdeb-35528062a541", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }

Registro em log de contexto do AWS DMS

O AWS DMS utiliza o registro em log de contexto para fornecer informações sobre uma migração em andamento. O registro em log de contexto grava informações, como as seguintes, no log de tarefas do CloudWatch:

  • Informações sobre a conexão da tarefa com os bancos de dados de origem e de destino.

  • Comportamento da tarefa de replicação. É possível utilizar os logs de tarefas para diagnosticar problemas de replicação.

  • Instruções SQL sem dados que o AWS DMS executa nos bancos de dados de origem e de destino. É possível utilizar os logs do SQL para diagnosticar um comportamento de migração inesperado.

  • Detalhes da posição no fluxo de cada evento da CDC.

O log de contexto só está disponível no AWS DMS versão 3.5.0 ou superior.

O AWS DMS ativa o log de contexto por padrão. Para controlar o log de contexto, defina a configuração da tarefa EnableLogContext como true ou false ou modificando a tarefa no console.

O AWS DMS grava as informações do log de contexto na tarefa de replicação do log do CloudWatch a cada três minutos. Verifique se a instância de replicação tem espaço suficiente para o log da aplicação. Para obter mais informações sobre como gerenciar logs de tarefas, consulte Visualização e gerenciamento dos logs de tarefas do AWS.

Tipos de objeto

O AWS DMS produz logs de contexto no CloudWatch para os seguintes tipos de objeto.

Tipo de objeto Descrição
TABLE_NAME Essas entradas do log contêm informações sobre as tabelas que estão em escopo com a regra atual de mapeamento de tarefas. É possível utilizar essas entradas para examinar os eventos de tabelas em um período específico durante a migração.
SCHEMA_NAME Essas entradas do log contêm informações sobre os esquemas utilizados pela regra atual de mapeamento de tarefas. É possível utilizar essas entradas para determinar qual esquema o AWS DMS está utilizado por um período específico durante a migração.
TRANSACTION_ID Essas entradas contêm o ID da transação de cada alteração de DML/DDL capturada no banco de dados de origem. É possível utilizar essas entradas do log para determinar as alterações ocorridas durante uma determinada transação.
CONNECTION_ID Essas entradas contêm o ID da conexão. É possível utilizar essas entradas do log para determinar qual conexão o AWS DMS utiliza para cada etapa da migração.
STATEMENT Essas entradas contêm o código SQL utilizado para buscar, processar e aplicar cada alteração da migração.
STREAM_POSITION Essas entradas contêm a posição no arquivo de log de transações de cada ação da migração no banco de dados de origem. O formato dessas entradas varia entre os tipos de mecanismo de banco de dados de origem. Também é possível utilizar essas informações para determinar a posição inicial de um ponto de verificação de recuperação ao configurar a replicação somente de CDC.

Exemplos de logs

Esta seção contém exemplos de registros de log que podem ser utilizados para monitorar a replicação e diagnosticar problemas de replicação.

Exemplos de logs de conexão

Esta seção contém exemplos de log que incluem IDs de conexão.

2023-02-22T10:09:29 [SOURCE_CAPTURE ]I: Capture record 1 to internal queue from Source {operation:START_REGULAR (43), connectionId:27598, streamPosition:0000124A/6800A778.NOW} (streamcomponent.c:2920) 2023-02-22T10:12:30 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), connectionId:27598} (streamcomponent.c:2920) 2023-02-22T11:25:27 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), columnName:region, connectionId:27598} (streamcomponent.c:2920)

Exemplos de logs de comportamento de tarefas

Esta seção contém exemplos de logs sobre o comportamento do log de tarefas de replicação. É possível utilizar essas informações para diagnosticar problemas de replicação, como uma tarefa no status IDLE.

Os logs de SOURCE_CAPTURE a seguir indicam que não há eventos disponíveis para leitura no arquivo de log do banco de dados de origem e que contêm registros de TARGET_APPLY que indicam que não há eventos recebidos dos componentes do AWS DMS CDC a serem aplicados ao banco de dados de destino. Esses eventos também contêm detalhes de contexto relacionados a eventos aplicados anteriormente.

2023-02-22T11:23:24 [SOURCE_CAPTURE ]I: No Event fetched from wal log (postgres_endpoint_wal_engine.c:1369) 2023-02-22T11:24:29 [TARGET_APPLY ]I: No records received to load or apply on target , waiting for data from upstream. The last context is {operation:INSERT (1), tableName:sales_11, schemaName:public, txnId:18662441, connectionId:17855, statement:INSERT INTO "public"."sales_11"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),

Exemplos de logs de instruções SQL

Esta seção contém exemplos de logs sobre instruções SQL executadas em bancos de dados de origem e de destino. As instruções SQL que você vê nos logs mostram somente a instrução SQL, não mostram os dados. O log de TARGET_APPLY a seguir mostra uma instrução INSERT executada no destino.

2023-02-22T11:26:07 [TARGET_APPLY ]I: Applied record 2193305 to target {operation:INSERT (1), tableName:sales_111, schemaName:public, txnId:18761543, connectionId:17855, statement:INSERT INTO "public"."sales_111"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),

Limitações

As limitações a seguir se aplicam ao log de contexto do AWS DMS:

  • Embora o AWS DMS crie um log mínimo para todos os tipos de endpoint, o log de contexto extenso específico do mecanismo está disponível somente para os seguintes tipos de endpoint. É recomendável ativar o log de contexto ao utilizar esses tipos de endpoint.

    • MySQL

    • PostgreSQL

    • Oracle

    • Microsoft SQL Server

    • MongoDB/Amazon DocumentDB

    • Amazon S3