Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Migrando MySQL para PostgreSQL no AWS RDS, Parte 4


Em quatro tutoriais, estamos explorando a migração de um banco de dados MySQL para um banco de dados PostgreSQL usando o AWS Database Migration Service (DMS). Começamos criando um usuário do IAM para DMS no primeiro tutorial, “Migrando MySQL para PostgreSQL no AWS RDS, Parte 1”. Posteriormente, discutimos a criação de instâncias do MySQL e PostgreSQL no AWS Relational Database Service (RDS) no segundo tutorial, “Migrando MySQL para PostgreSQL no AWS RDS, Parte 2”. No terceiro tutorial, “Migrando MySQL para PostgreSQL no AWS RDS, Parte 3”, criamos uma migração DMS. Neste tutorial final, discutiremos a execução da migração DMS para realizar a migração.

Este tutorial tem as seguintes seções:
  • Executando a tarefa de migração do DMS
  • Explorando o banco de dados migrado
  • Explorando o CloudWatch Logs
  • Limitações na migração MySQL para PostgreSQL com DMS
  • Conclusão

Executando a tarefa de migração DMS


Após a criação da tarefa, o Status deve ficar Pronto , conforme mostrado na Figura 1. Clique em Iniciar/Retomar para iniciar a tarefa.


Figura 1: Iniciar/Retomar

O status deve se tornar Iniciando , como mostrado na Figura 2.


Figura 2: Início da tarefa

Quando a tarefa estabelece conexão com a instância de replicação e os endpoints do banco de dados e é aplicada, a tabela mapeia o status torna-se Executando , como mostrado na Figura 3.


Figura 3: Status em execução

A migração é executada conforme configurado e, após a migração ser concluída com êxito, o Status torna-se Carregamento concluído , conforme mostrado na Figura 4. As Tabelas carregadas coluna indica o número de tabelas carregadas.


Figura 4: Status de carregamento concluído

Para as tabelas que foram migradas, clique em Estatísticas da tabela guia, conforme mostrado na Figura 5. Estatísticas de tabela, incluindo esquema, tabela, status, número de inserções, exclusões, atualizações, DDLs, linhas de carga completa e total são listadas.


Figura 5: Estatísticas da Tabela

Se a tabela de banco de dados de origem não incluir tabelas, as Linhas de carregamento total é 0. Se uma tabela de origem tiver linhas, Full Load Rows indica o número de linhas, conforme mostrado para algumas das linhas na Figura 6.


Figura 6: Full Load Rows para algumas tabelas é 0, enquanto para outras tabelas, o número de linhas carregadas

Explorando o banco de dados migrado


Tendo migrado os esquemas e tabelas do banco de dados MySQL para o PostgreSQL, liste os esquemas na CLI do PostgreSQL com o dn comando. Os esquemas migrados são listados, conforme mostrado na Figura 7. O public esquema já existia antes da migração.


Figura 7: Esquemas migrados do MySQL para o banco de dados PostgreSQL

A migração do DMS converte os tipos de coluna da tabela automaticamente. Um índice secundário é adicionado para uma chave primária, criada automaticamente no mapeamento da tabela.

Os dados da tabela também são migrados, como mostrado para o mysql.user tabela na Figura 8.


Figura 8: Os dados da tabela também são migrados

Ao migrar de um tipo de banco de dados para outro (migração heterogênea), os mapeamentos de tipos de dados são feitos pelo DMS automaticamente. Um tipo de dados DMS intermediário é usado durante uma migração. Ao migrar do banco de dados MySQL para o PostgreSQL, primeiro os tipos de dados MySQL são migrados para o tipo de dados DMS usando os mapeamentos integrados do banco de dados MySQL como banco de dados de origem. Subsequentemente, o tipo de dados DMS é mapeado para os tipos de dados PostgreSQL, novamente usando mapeamentos integrados para PostgreSQL como banco de dados de destino. As tabelas relacionadas ao RDS no banco de dados MySQL no RDS também são migradas para o banco de dados PostgreSQL, como a tabela “mysql”..”rds_replication_status” mostrada na Figura 9.


Figura 9: Dados migrados para uma tabela de informações do RDS

Explorando o CloudWatch Logs


Se o registro estiver configurado, como fizemos, os registros podem ser monitorados a partir dos Registros guia, conforme mostrado na Figura 10. Clique no link da tarefa para listar os logs do CloudWatch.


Figura 10: Histórico

Os logs do CloudWatch são listados (consulte a Figura 11).


Figura 11: Registros do CloudWatch

Como uma mensagem de logs do CloudWatch na Figura 12 indica, “Todas as tabelas são carregadas. A tarefa somente de carregamento total é interrompida”.


Figura 12: Todas as tabelas são carregadas

O número de registros transferidos também é listado, como para o sys.sys_config tabela na Figura 13.


Figura 13: A entrada de log para uma tabela de banco de dados inclui o número de registros transferidos

Os logs do CloudWatch podem ser usados ​​para depurar uma execução de tarefa de migração. As mensagens de erro são listadas para as tabelas que não foram migradas com êxito nos logs do CloudWatch.

Limitações na migração do MySQL para PostgreSQL com DMS


A migração do banco de dados MySQL para o banco de dados PostgreSQL com DMS não é isenta de limitações. O próprio serviço DMS tem limites por conta de usuário da AWS. Outras limitações do DMS podem ser específicas de um banco de dados. Os tipos de dados de origem DMS para MySQL não incluem o conjunto de caracteres UTF-8 de 4 bytes (utf8mb4). O conjunto de caracteres suportado pelo DMS é o Code Page 1252 Windows Latin 1 (ANSI) e os caracteres que não estão no conjunto de caracteres podem gerar um erro durante uma migração. Existem algumas limitações para o banco de dados MySQL como origem DMS. A única limitação para usar o PostgreSQL como um banco de dados de destino DMS é que o tipo de dados JSON é convertido para o tipo de dados CLOB nativo.

Conclusão


Em quatro tutoriais, discutimos a migração de uma instância de banco de dados MySQL no RDS para uma instância de banco de dados Postgres no RDS.