O blog da AWS
Migração do Microsoft SQL Server para o Amazon Aurora com suporte MySQL usando a ferramenta de conversão de esquema e o serviço de migração de banco de dados
Por Miguel Soto, Solutions Architect AWS México.
A migração de um banco de dados enfrenta desafios que podem complicar o processo. É valioso confiar em ferramentas que minimizem o esforço e o risco para fazê-lo com mais rapidez e maior probabilidade de sucesso.
Esta publicação descreve as etapas necessárias para migrar usando as ferramentas AWS Schema Conversion Tool (SCT) e AWS Database Migration Service (DMS) fornecendo um banco de dados no Microsoft SQL Server para migrar para o Amazon Aurora compatível com MySQL. Também analisaremos alguns tópicos específicos do SQL Server que podem ser apresentados e como resolvê-los.
O processo consiste essencialmente em duas etapas:
- Convertendo o esquema do banco de dados de origem para que ele possa ser criado no banco de dados de destino no Aurora usando o AWS SCT.
- Migração de dados usando o AWS DMS em nosso caso.
Ferramenta de conversão de esquema
No exemplo mostrado, a origem é um banco de dados no SQL Server em uma instância do EC2, a origem pode estar no site do cliente e, nesse caso, as informações correspondentes seriam usadas para a conexão. Em ambos os casos, você deve garantir que a instância esteja acessível para conexão pelo SCT e pelo DMS.
A existência da instância do Aurora é assumida como um destino para migração. Para obter instruções, consulte Criando uma instância do Amazon Aurora. Você precisará fornecer o Endpoint correspondente à instância que pode ser encontrada no Console da AWS no serviço Amazon RDS, opção Bancos, de dados, na guia Conectividade e segurança conforme mostrado na imagem a seguir:
Para garantir o acesso ao banco de dados de destino, verifique o grupo de segurança da instância do Aurora e adicione as regras de entrada necessárias para permitir a comunicação com serviços, conforme mostrado no exemplo a seguir:
Estágio 1. Conversão do esquema usando SCT
A AWS Schema Conversion Tool (AWS SCT) é um aplicativo independente que pode ser baixado que fornece uma interface de usuário baseada em projeto. O AWS SCT está disponível para o Fedora Linux, macOS, Microsoft Windows e Ubuntu Linux versão 15.04. O AWS SCT só é compatível com sistemas operacionais de 64 bits. O AWS SCT também instala o Amazon Corretto JDK 11.
Use o instalador do seu sistema operacional, consulte a AWS Schema Conversion Tool para obter mais informações. Para este exemplo, vamos baixar a ferramenta para o Microsoft Windows. Todos os arquivos compactados têm a extensão.zip. Quando você extrair o arquivo do instalador do AWS SCT, ele será formatado conforme apropriado para o seu sistema operacional.
Descompacte o arquivo e execute a instalação:
Quando a instalação estiver concluída, abra o SCT e crie um projeto de migração:
Especifique as definições de configuração do banco de dados de origem. Teste a conexão e clique no botão Avançar.
Selecione o esquema do banco de dados a ser migrado e clique no botão Próximo
Após a conclusão da revisão, acesse o relatório de avaliação para a migração do banco de dados. SCT irá converter automaticamente o máximo possível e reportar o que não pode converter. Clique no botão Avançar.
Depois de validar o relatório e para continuar com a migração, você deve especificar a configuração do banco de dados de destino, testar a conexão e clicar no botão Concluir.
Selecione a opção Exibir na barra de menus e, em seguida, a exibição Relatório de avaliação, e, em seguida, selecione a guia “Itens de ação” para revisar os objetos que não podem ser convertidos e ver quantas alterações manuais são necessárias.
As alterações manuais podem ser feitas da seguinte forma:
- Modifique no esquema de origem do banco de dados do servidor SQL para que o SCT possa convertê-los no banco de dados MySQL do Aurora.
- Modifique scripts SCT antes de aplicá-los ao banco de dados MySQL do Aurora de destino.
Na imagem a seguir, como exemplo, o SCT nos informa que o MySQL não suporta o procedimento PRINT e a documentação indica a substituição pela instrução SELECT.
Uma vez que a modificação foi feita, geramos novamente o relatório de conversão que agora mostra 100% de compatibilidade.
Escolha no painel do banco de dados de origem o esquema a ser convertido, neste exemplo dms_sample, clique com o botão direito do mouse e “Converter esquema”. Responda a “Sim” na notificação sobre a substituição de objetos que possam existir no banco de dados.
No painel do banco de dados de destino, clique com o botão direito do mouse no esquema em que deseja aplicar a criação do objeto SCT. Responda “Sim” à notificação relativa à aplicação do esquema no banco de dados.
Para validar se os objetos foram criados no banco de dados de destino, você pode expandir o esquema no painel correspondente para exibir a lista de tabelas que correspondem às tabelas no banco de dados de origem.
Estágio 2. Migração de dados usando DMS
A migração de dados pode ser realizada com o serviço DMS. Você tem a opção de migrar os dados disponíveis no momento da migração e, adicionalmente, replicar continuamente as alterações no banco de dados de origem para o banco de dados de destino.
Para facilitar a passagem de dados, é aconselhável desativar restrições de chave estrangeira desta forma as dependências de dados entre tabelas não impedem o carregamento de dados. Para isso, usaremos o SQL Server Management Studio.
Configure o banco de dados de destino, teste a conexão e clique em OK
Neste exemplo, as validações de chave estrangeira são removidas do editor SQL do MySQL Workbench com instruções DROP FOREIGN KEY. Após o carregamento de dados, chaves estrangeiras podem ser criadas novamente. Há também a possibilidade de desativar a validação de chaves estrangeiras e habilitá-las no final da migração de dados. Informações sobre este processo podem ser encontradas aqui.
No console da AWS, use o Data Management Service, a opção Instâncias de replicação e clique em Criar instância de replicação
Aguarde até que a instância de replicação seja criada.
No console do AWS DMS, no painel esquerdo, clique na opção Endpoints e insira as informações correspondentes, primeiro para a origem:
Clique em Criar ponto final, e, em seguida, crie o ponto final para o destino:
Em seguida, crie uma tarefa de migração. Selecione “Database migration tasks” no painel de serviço do DMS no console e clique em “Create task”. O exemplo seleciona “Migrate existing data” como o tipo de migração. Outras alternativas são: “Migrate existing data and replicate ongoing changes” e “Replicate data changes only”. Que pode ser usado dependendo do caso.
Indique as opções desejadas para a configuração da tarefa.
Continue com as opções de mapeamento de tabela.
Você pode adicionar regras de transformação como no exemplo é usado para renomear o esquema de destino. E, finalmente, indique se você deseja que a tarefa seja executada imediatamente quando criada ou posteriormente manualmente.
A tarefa pode ser revisada para ver o grau de progresso e, uma vez concluída, permite ver detalhes como as estatísticas correspondentes à migração das tabelas, como mostrado abaixo.
Descobertas interessantes de alguns testes já feitos
Vários testes de migração mostraram falhas na conversão de procedimentos armazenados que incluíam instruções GO TO que não são suportadas no Aurora MySQL. Embora haja uma nota técnica que oferece um código alternativo que pode ser consultado aqui. Uma revisão mais profunda permite que você identifique que os procedimentos armazenados envolvidos não eram parte do esquema original, mas que o SQL Server os adiciona para trabalhar com suas ferramentas (veja mais informações aqui) e não são necessários no MySQL para que você possa simplesmente ignorar sua criação no banco de dados de destino
Conclusão
O Amazon aurora é um banco de dados totalmente gerenciado pelo Amazon Relational Database Service (RDS), simplificando consideravelmente as tarefas administrativas. O Amazon Aurora é até cinco vezes mais rápido que os bancos de dados MySQL padrão e três vezes mais rápido que os bancos de dados PostSQL padrão, com um décimo do custo dos bancos de dados comerciais. A AWS Schema Conversion Tool (SCT) e as ferramentas AWS Database Migration Service (DMS) ajudarão você a começar com os benefícios da migração para o Amazon Aurora mais rapidamente.
Sobre o autor
Miguel Soto é Telco Senior SA de WWPS Solution Architecture na AWS México.