AWS DMS ressincronização de dados - 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á.

AWS DMS ressincronização de dados

AWS Database Migration Service (AWS DMS) A ressincronização de dados corrige automaticamente as inconsistências de dados identificadas por meio da validação de dados entre seus bancos de dados de origem e de destino. Esse recurso funciona como parte das tarefas existentes de migração do DMS, garantindo que as atualizações adequadas ocorram com base nas configurações de tarefas, configurações de conexão, mapeamentos de tabelas e transformações.

O recurso de ressincronização de dados opera lendo as falhas de validação de uma tabela de controle no banco de dados de destino e executando as operações de correção apropriadas. Quando uma incompatibilidade é detectada, os dados atuais são recuperados da fonte usando a chave primária armazenada no registro de falhas e aplicados ao destino, respeitando todas as transformações configuradas. Para obter mais informações, consulte awsdms_validation_failures_v2tabela de controle.

O comportamento varia de acordo com o tipo de migração. Para full-load-only tarefas, a ressincronização de dados é executada uma vez após a conclusão do carregamento inicial e da validação. Para tarefas com captura de dados de alteração (CDC), a ressincronização de dados opera de acordo com uma programação configurada, pausando temporariamente a replicação e a validação enquanto as correções são aplicadas.

Durante as operações de ressincronização do CDC:

  • A replicação e a validação são pausadas temporariamente.

  • A ressincronização de dados processa as falhas de validação existentes.

  • Currículo normal de replicação e validação.

  • O processo se repete com base na sua agenda configurada.

A ressincronização de dados rastreia automaticamente o status de cada operação de correção e fornece métricas detalhadas por meio de estatísticas de tabela.

Pré-requisitos:

O recurso de ressincronização de dados precisa dos seguintes pré-requisitos:

  • Você deve ter a versão 3.6.1 ou posterior do AWS DMS motor.

  • Você deve definir as configurações de cronograma e duração de tempo para tarefas que tenham replicação contínua. Tarefas somente com carga total não exigem essas configurações.

Limitações

O recurso de ressincronização de dados tem as seguintes limitações:

  • A ressincronização de dados suporta somente Oracle e SQL Server como banco de dados de origem.

  • A ressincronização de dados é compatível com PostgreSQL e Amazon Aurora PostgreSQL como banco de dados de destino.

  • Todas as tabelas em seu banco de dados de origem e destino devem ter chaves primárias. A validação não suporta tabelas sem uma chave primária ou uma chave exclusiva. Todas as tabelas que não têm uma chave primária ou exclusiva válida são suspensas da validação e nenhuma falha de validação é relatada.

  • Ao executar Full-load-only tarefas, a validação de dados deve ser ativada.

  • A ressincronização de dados não pode ser habilitada somente para a tarefa de validação, pois eles não replicam nenhum dado. Você pode ativar a ressincronização na tarefa de replicação principal fornecendo somente a validação. taskID Para obter mais informações, consulte Tarefas somente de validação.

  • Se a tarefa Somente validação tiver uma configuração de ControlSchema parâmetros definida nas configurações da tarefa, a tarefa de replicação também deverá ter a mesma configuração de parâmetros para que a ressincronização de dados encontre as falhas de validação corretas.

  • Você deve definir as configurações de cronograma e duração de tempo para tarefas do CDC.

  • Durante a janela de ressincronização, a ressincronização de dados pode ter um impacto na latência de replicação no DMS.

Para obter mais informações sobre a solução de problemas de validação AWS DMS durante a ressincronização de dados, consulte a seção AWS DMS Solução de problemas em Validação de dados.

Programação e cronometragem

Para tarefas com o CDC, você deve configurar quando e por quanto tempo a ressincronização de dados opera. Isso ajuda a evitar o impacto em suas operações normais de replicação. Você especifica:

  • Um cronograma usando o formato cron para definir quando as operações de ressincronização podem ocorrer.

  • Uma duração máxima para garantir que as operações de ressincronização não se estendam até os períodos de pico de uso.

É recomendável programar operações de ressincronização fora do horário de pico ou para um período em que haja pouca ou nenhuma alteração no banco de dados de origem.

nota

O tempo programado inclui esperar que o stream de aplicação de destino fique vazio, pois a ressincronização de dados e a replicação normal não podem ser executadas simultaneamente.

Casos de uso

O recurso de ressincronização de dados permite que os usuários reconciliem inconsistências de dados entre os sistemas de origem e de destino. Ele identifica registros incompatíveis e os sincroniza para manter a consistência dos dados em ambientes distribuídos. Os casos de uso a seguir demonstram cenários comuns em que o recurso de ressincronização de dados resolve os desafios de consistência de dados:

Cenário 1: tarefa de carga total - execute a ressincronização usando a mesma tarefa do DMS

Em sua tarefa existente de migração de carga total do DMS, você pode fazer o seguinte:

  • Habilitar validação:Validation with data migration = true.

  • Ativar ressincronização: Data resync = true

Cenário 2: carga total e tarefa CDC, somente CDC - execute a ressincronização usando a mesma tarefa DMS

Em sua tarefa de migração do DMS CDC existente, você pode fazer o seguinte:

  • Habilitar validação:Validation with data migration = true.

  • Ativar ressincronização: Data resync = true

  • Especifique o cronograma de ressincronização:. "ResyncSchedule": "0 0,2,4,6 * * *"

  • Especifique o tempo de ressincronização: MaxResyncTime": 60

Cenário 3: carga total e tarefa somente CDC ou CDC para replicação e ressincronização, em combinação com uma tarefa somente de validação

Para realizar a operação somente de validação em outra tarefa do DMS ao usar a ressincronização, você pode fazer o seguinte:

  • Crie uma tarefa de validação somente do DMS CDC.

    nota

    Você deve anotar e especificar o ID dessa tarefa durante a ressincronização de dados.

  • Em sua tarefa principal do CDC, desative a validação:Data validation = false.

  • Ativar ressincronização: Data resync = true

  • Especifique o cronograma de ressincronização:. "ResyncSchedule": "0 0,2,4,6 * * *"

  • Especifique o tempo de ressincronização:. MaxResyncTime": 60

  • Especifique o ID da tarefa de validação somente do DMS CDC. Somente a ID da tarefa de validação é anexada ao final do ARN. Exemplo de ARN: arn:aws:dms:us-west-2:123456789012:task:6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI e exemplo de ID de tarefa somente para validação:. 6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI

Práticas recomendadas

Você pode aproveitar o recurso de ressincronização de dados AWS Database Migration Service para melhorar a durabilidade de suas tarefas de replicação e obter consistência. Algumas das melhores práticas para usar o recurso de ressincronização de dados são:

  • Como parte da ressincronização de dados, os registros que têm incompatibilidades são corrigidos buscando-os da origem e aplicando-os no banco de dados de destino. Se o banco de dados de origem for atualizado durante a janela de ressincronização, a ressincronização lerá o valor do registro mais recente e o aplicará no destino. Isso pode fazer com que os eventos de aplicação do CDC falhem e introduzam inconsistências temporárias no banco de dados de destino. Para evitar isso, você deve programar a janela de ressincronização fora do horário comercial ou períodos em que as alterações no banco de dados de origem sejam zero ou mínimas.

  • Defina a janela de ressincronização durante períodos de atividade mínima do banco de dados de origem e dentro do limite aceitável de latência alvo. Pequenos intervalos de ressincronização podem causar o acúmulo de incompatibilidades de validação não processadas, enquanto janelas grandes podem aumentar a latência de replicação quando ocorrem muitas falhas de validação. Monitore as falhas de validação e as taxas de ressincronização para determinar as janelas de ressincronização ideais durante os períodos de inatividade da fonte. Alguns exemplos para configurar as janelas de ressincronização são:

    • Configuração de várias janelas curtas:

      "ResyncSchedule": "0 0,2,4,6 * * *", "MaxResyncTime": 60
    • Configuração de janela única diária:

      "ResyncSchedule": "0 0 * * *", "MaxResyncTime": 360
  • Monitore a latência da replicação no DMS durante as janelas de ressincronização e ajuste o cronograma adequadamente para mitigar grandes picos.

  • Você pode revisar os resultados da ressincronização por meio da estatística da tabela ou consultando a awsdms_validation_failures_v2 tabela no banco de dados de destino. Para obter mais informações, consulte Monitoramento de tarefas de replicação usando a Amazon CloudWatch.

  • Quando a tarefa estiver em uma fase de replicação contínua, evite iniciar uma recarga para tabelas individuais durante a janela de ressincronização.

  • Práticas recomendadas para uma tarefa de replicação do CDC:

    • Todas as tabelas em seu banco de dados concluem o processo de carregamento.

    • As incompatibilidades são identificadas no processo de validação em andamento.

    • De acordo com a janela agendada de ressincronização, a tarefa de replicação é pausada por um breve período.

    • A ressincronização de dados corrige os problemas identificados durante o processo de validação.

    • O processo de replicação é retomado e repetido conforme o cronograma.

Configuração e exemplos de ressincronização de dados

Configuração das configurações de ressincronização de dados:

Você pode configurar a ressincronização para sua tarefa de replicação no DMS. Abaixo está um exemplo da configuração das configurações de ressincronização de dados em sua tarefa:

"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 }

Exemplos de padrões comuns de agendamento de ressincronização:

  • 0 0 * * *: Corra uma vez por dia à meia-noite.

  • 0 0,12 * * *: Corra duas vezes por dia à meia-noite e ao meio-dia.

  • 0 0,2,4,6, * * *: Corra a cada duas horas entre meia-noite e 6h.

  • 0 1 * * 1: Corra todas as semanas às segundas-feiras à 1h.

nota

Você deve especificar um número para cada dia começando de 0 a 6. Para obter mais informações, consulte Regras de expressões Cron.

Monitorando as operações de ressincronização:

Você pode monitorar a operação de ressincronização por meio das estatísticas da tabela. Aqui está um exemplo de saída:

{ "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 o recurso de ressincronização de dados em AWS DMS, você pode revisar vários parâmetros de ressincronização e suas respectivas configurações. Para obter mais informações, consulte Configurações de ressincronização de dados. Para obter mais informações sobre as configurações de registro de ressincronização de dados, consulte. Configurações de registro de tarefa

Validação e solução de problemas

Validação:

Quando a validação de dados está ativada, AWS DMS cria uma tabela de falhas de validação em seu banco de dados de destino com a seguinte estrutura:

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 );

Você pode escrever uma consulta nessa tabela para entender as incompatibilidades de dados encontradas e como elas são resolvidas.

Quando a validação está ativada, AWS DMS cria uma tabela de falhas de validação no banco de dados de destino. Se você tiver algum problema, poderá consultar a awsdms_control.awsdms_validation_failures_v2 tabela para entender as incompatibilidades de dados encontradas e como elas são resolvidas. Para obter mais informações, consulte a seção Solução de problemas em Validação de AWS DMS dados.

Fluxo de trabalho comum:

Durante a validação na ressincronização de dados, o fluxo de trabalho padrão é o seguinte:

Tarefas somente com carga total:

  1. Todas as tabelas em seu banco de dados concluem o processo de carregamento.

  2. As incompatibilidades são identificadas no processo de validação em andamento.

  3. A ressincronização de dados corrige os problemas identificados durante o processo de validação.

  4. O processo de validação valida a retificação.

  5. A tarefa de migração foi concluída com êxito.

Tarefas do CDC:

  1. Todas as tabelas em seu banco de dados concluem o processo de carregamento.

  2. As incompatibilidades são identificadas no processo de validação em andamento.

  3. De acordo com a janela agendada de ressincronização, a tarefa de replicação é pausada por um breve período.

  4. A ressincronização de dados corrige os problemas identificados durante o processo de validação.

  5. O processo de replicação é retomado e repetido conforme o cronograma.

Qualquer modificação feita na tarefa, como interromper a tarefa de replicação durante a operação de ressincronização ou recarregar e revalidar tabelas, pode afetar o comportamento e o resultado da tarefa. Algumas das mudanças de comportamento conhecidas são as seguintes:

Quando você interrompe a tarefa de replicação enquanto a operação de ressincronização está em andamento:

  • A operação de ressincronização não é retomada automaticamente. Você deve reiniciá-lo novamente.

  • As futuras operações de ressincronização ocorrerão de acordo com a programação configurada.

  • Todas as correções incompletas são tentadas na próxima janela de agendamento de ressincronização.

Quando você recarrega uma tabela no seu banco de dados:

  • A operação de ressincronização ignora qualquer tabela que esteja sendo recarregada.

  • As falhas de validação anteriores de uma tabela que foi recarregada são ignoradas.

  • A nova validação começa após a conclusão da ação de recarga.

Quando você revalida uma tabela em seu banco de dados:

  • Todas as estatísticas da sua operação de ressincronização são redefinidas.

  • As falhas de validação anteriores de uma tabela que foi revalidada são ignoradas.

nota

Ao atualizar ou mover uma tarefa para a versão 3.6.1 e superior do DMS, qualquer falha na awsdms_control.awsdms_validation_failures_v1 tabela não é ressincronizada. Somente falhas na awsdms_validation_failures_v2 tabela são ressincronizadas. Para ressincronizar falhas na awsdms_control.awsdms_validation_failures_v2 tabela, você deve recarregar a tarefa, recarregar uma ou mais tabelas na tarefa ou revalidar uma ou mais tabelas. Para obter mais informações, consulte os seguintes links:

  • Para recarregar uma tarefa, consulte a referência StartReplicationTask da API.

  • Para recarregar uma ou mais tabelas em uma tarefa, consulte a documentação reload-tablesde referência do comando AWS CLI.

  • Para revalidar uma ou mais tabelas, consulte a validate-only opção na reload-tablesseção na documentação de referência do comando AWS CLI.

.

Regras de expressão Cron

Para configurar as operações de ressincronização de dados durante uma tarefa de replicação, AWS DMS você pode usar regras de expressões cron. Essas regras permitem que você personalize as janelas de tempo de ressincronização e as agende de acordo com suas necessidades comerciais. Você pode usar vários parâmetros, como minutos, horas, dias, meses e dias da semana. As regras da expressão cron para cada parâmetro são:

Minutos:
  • Intervalo de minutos de 0 a 59.

  • Você pode usar (-),or/andpara especificar o intervalo. Máximo de 10 itens separados por vírgula (,).

  • Exemplos:

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

    • 1-2,3-4,5,7-10é um intervalo válido.

    • 1,2,3,4,5,6,7,8,9,10é um intervalo válido.

    • 1,2,3,4,5,6,7,8,9,10,11não é um intervalo válido. A operação de ressincronização pula após o 10º item do intervalo.

  • Você pode usar (*). Exemplo: * é igual a. 0-59

  • Você pode usar (/) somente em combinação com (-) ou (*).

    Exemplos:

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

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

Horas:

O mesmo que "Minutos", mas o intervalo válido é 0 de 23 a.

Dias:
  • O mesmo que "Minutos", mas o intervalo válido é 1 de 31 a.

  • O uso de L é suportado na configuração de ressincronização. É interpretado como o último dia do mês. Você não deve usá-lo em combinação com outra sintaxe.

Meses:

O mesmo que "Minutos", mas o intervalo válido é 1 de 12 a.

Dias da semana:
  • O mesmo que "Minutos", mas o intervalo válido é 0 de 6 a.

  • Você não pode adicionar um valor de string para o nome da semana.