Quando posso adicionar objetos secundários a um banco de dados de destino durante a migração do AWS DMS?
Em que estágio da migração posso adicionar objetos secundários ao banco de dados de destino com o AWS Database Migration Service (AWS DMS)? Além disso, que configurações de tarefa posso usar para criar objetos secundários no banco de dados de destino?
Descrição breve
O AWS DMS cria tabelas no banco de dados de destino usando a opção TargetTablePrepMode. Quando o AWS DMS cria tabelas de destino, ele migra somente os objetos necessários para a migração efetiva dos dados para o destino. Por exemplo, o AWS DMS cria tabelas, chaves primárias e, em alguns casos, índices exclusivos. Mas ele não cria índices secundários, restrições de chaves não primárias, padrões de dados ou contas de usuário. Para obter mais informações, consulte Ausência de chaves estrangeiras e índices secundários.
Para criar tabelas manualmente no destino antes da migração, é prática recomendada eliminar objetos secundários, como índices secundários, antes do início da migração.
Observação: isso não se aplica a uma tarefa somente de captura de dados de alteração (CDC).
Portanto, para garantir que a migração seja bem-sucedida e para melhorar a performance das tarefas, é importante entender a hora certa de criar objetos secundários. O tempo varia de acordo com o método de migração usado pela tarefa:
- Somente carga total (migrar dados existentes)
- Carga total e CDC (migrar dados existentes e replicar alterações continuamente)
- CDC (replicar somente alterações nos dados)
Resolução
Somente carga total
Para uma tarefa de somente carga total, é prática recomendada descartar as chaves primárias e todos os objetos secundários antes do início da migração. Não crie esses objetos até que a carga total seja concluída. Se houver objetos secundários no banco de dados de destino durante a carga total, uma sobrecarga adicional de manutenção poderá acontecer.
Se houver chaves estrangeiras no destino, a tarefa poderá falhar. Isso acontece porque a tarefa carrega grupos de tabelas juntos sem uma ordem específica, a menos que você a tenha especificado manualmente em mapeamentos de tabelas.
Da mesma forma, acionadores de inserção, atualização ou exclusão poderão causar erros se estiverem presentes no banco de dados de destino. Por exemplo, uma inserção de linha que é acionada por um acionador de inserção em uma tabela carregada anteriormente pode causar linhas duplicadas. Outros tipos de acionadores também afetam a performance porque geram processamento adicional.
Carga total e CDC
Para tarefas de carga total e CDC, é prática recomendada descartar todos os objetos secundários antes do início da migração. No entanto, é necessário aplicar objetos secundários no banco de dados de destino em diferentes fases da migração.
Revise os estágios da migração de tarefas de carga total e CDC e em que estágio aplicar objetos secundários específicos:
- A carga total de dados existentes: adicione índices secundários depois que a tarefa tiver concluído a carga total, mas antes de aplicar as alterações capturadas em cache.
- A aplicação de alterações em cache: adicione chaves estrangeiras (restrições de integridade referencial) depois que a tarefa tiver aplicado as alterações armazenadas em cache.
- Replicação contínua: crie acionadores após a conclusão da migração e antes da substituição da aplicação.
Enquanto a carga total estiver em andamento, todas as alterações feitas nas tabelas que estão sendo carregadas serão armazenadas em cache. Essas alterações em cache são aplicadas quando a carga total da tabela é concluída. Depois que a carga total for concluída e as alterações armazenadas em cache forem aplicadas, as tabelas de destino estarão transacionalmente consistentes. Em seguida, o AWS DMS inicia a fase de replicação contínua. Para obter mais informações sobre isso, consulte Visão de alto nível do AWS DMS.
Para interromper a tarefa durante a migração, use estas configurações de tarefa:
- Use StopTaskCachedChangesNotApplied para interromper a tarefa antes de aplicar as alterações armazenadas no cache.
- Use StopTaskCachedChangesApplied para interromper a tarefa após aplicar as alterações armazenadas no cache.
Observação: é possível ativar StopTaskCachedChangesNotApplied e StopTaskCachedChangesApplied usando a AWS Command Line Interface (AWS CLI). Se você receber erros ao executar comandos da AWS CLI, verifique se está usando a versão mais recente da AWS CLI.
Tarefas somente CDC
Para tarefas somente CDC, é possível criar os índices secundários e as chaves estrangeiras no banco de dados de destino antes da migração. Em seguida, crie os acionadores no destino após a conclusão da migração e antes da substituição da aplicação.
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos