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

Migrando MySQL para PostgreSQL no AWS RDS, Parte 3


Em um conjunto de quatro tutoriais, estamos explorando a migração de uma instância de banco de dados MySQL para um banco de dados PostgreSQL usando o AWS Database Migration Service (DMS). No primeiro tutorial, “Migrando MySQL para PostgreSQL no AWS RDS, Parte 1”, apresentamos o DMS e criamos um usuário do IAM para o DMS. No segundo tutorial, Migrando MySQL para PostgreSQL no AWS RDS, Parte 2, criamos instâncias do MySQL e PostgreSQL no RDS e conectamos as duas instâncias. Neste tutorial de continuação, criaremos uma migração DMS para realizar a migração. Este tutorial tem as seguintes seções:
  • Criando uma migração DMS
  • Criando uma instância de replicação
  • Criando endpoints de tarefas de migração
  • Criando uma tarefa de migração
  • Conclusão

Criando uma migração DMS


Nesta seção, vamos criar um Database Migration Service (DMS) para migrar o banco de dados MySQL para o banco de dados PostgreSQL. Uma migração DMS consiste nos seguintes componentes:
  • Instância de replicação
  • Pontos de extremidade do banco de dados
  • Tarefa

Discutiremos a criação de cada um deles em subseções, mas primeiro você precisa criar uma migração DMS. Navegue até o painel do DMS e clique em Criar migração , como mostrado na Figura 1.


Figura 1: Criar migração

O assistente DMS é iniciado. Clique em Avançar, conforme mostrado na Figura 2.


Figura 2: Assistente DMS

Criando uma instância de replicação


Em seguida, configure uma instância de replicação, que estabelece a conexão entre os bancos de dados de origem e destino, transfere os dados e armazena em cache as alterações de dados que ocorrem durante o carregamento de dados inicial. Especifique uma instância de replicação Nome e Descrição e selecione uma classe de instância (o padrão é dms.t2.medium), conforme mostrado na Figura 3. Selecione uma VPC e selecione a opção de configurar alta disponibilidade com Mult-Az; a configuração padrão é definida como “Não”. Selecione a opção Acessível publicamente .


Figura 3: Configurando uma instância de replicação

Em Avançado , mantenha as configurações padrão para armazenamento alocado (50 GB), Replication Subnet Group, Availability zone (sem preferência) e VPC Security Group (Use default), conforme mostrado na Figura 4. Selecione a chave mestra KMS (dbms) criada anteriormente em Setting the Environment seção.


Figura 4: Definindo configurações avançadas para instância de replicação

Clique em Avançar, conforme mostrado na Figura 5.


Figura 5: Próximo

A instância de replicação começa a ser criada, conforme mostrado pela mensagem na Figura 6. Em seguida, as conexões de banco de dados de origem e destino precisam ser configuradas, o que faremos na próxima subseção.


Figura 6: A instância de replicação começa a ser criada

Criando endpoints de tarefas de migração


A instância de replicação pode levar alguns minutos para ser criada. Os endpoints de migração podem ser adicionados enquanto a instância de replicação está sendo criada. Selecione o mecanismo de origem como “mysql”, conforme mostrado na Figura 7.


Figura 7: Selecionando o mecanismo de origem

Selecione Mecanismo de destino como “postgres”, como mostrado na Figura 8.


Figura 8: Selecionando o mecanismo de destino

Em Nome do servidor , especifique o Endpoint para a instância de banco de dados do RDS para o banco de dados removendo o :port sufixo. Para um banco de dados MySQL, o RDS Endpoint é mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:3306 . Portanto, especifique o Nome do servidor como mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com , conforme mostrado na Figura 9. Para um banco de dados PostgreSQL no RDS, o Endpoint é postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:5432; portanto, especifique o Nome do servidor como postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Especifique a porta separadamente para os bancos de dados de origem e destino:3306 para banco de dados MySQL e 5432 para Postgres.


Figura 9: Especificando o nome do servidor e a porta para bancos de dados de origem e destino

Role para baixo para obter mais configurações de endpoint, conforme mostrado na Figura 10. Selecione SSL mode como nenhum para os bancos de dados de origem e de destino. Especifique o nome de usuário e a senha conforme configurado ao criar as instâncias de banco de dados do RDS. Especifique o nome do banco de dados PostgreSQL (postgresdb), também conforme configurado ao criar a instância de banco de dados do RDS.


Figura 10: Especificando o modo SSL, nome de usuário, senha e SID ou nome do banco de dados

Nas configurações avançadas, os atributos de conexão extras disponíveis para o banco de dados MySQL e o banco de dados PostgreSQL podem ser especificados, mas nenhum é necessário para este tutorial. Selecione a chave mestra KMS (dbms) para os bancos de dados de origem e destino (consulte a Figura 11). Para testar os endpoints do DMS, o Executar teste botões são fornecidos, conforme mostrado na Figura 11. O Executar teste os botões ficam acinzentados ou desabilitados até que a instância de replicação seja criada.


Figura 11: Definindo configurações avançadas para endpoints DMS

Quando a instância de replicação é criada, a mensagem “Instância de replicação criada com sucesso” é exibida, conforme mostrado na Figura 12.


Figura 12: Instância de replicação criada com sucesso

Após a criação da instância de replicação, o Executar teste botões ficam habilitados. Clique em Executar teste , conforme mostrado na Figura 13, para cada banco de dados.


Figura 13: Teste de corrida

As conexões começam a ser testadas, conforme indicado pela mensagem “Testing endpoint connection” na Figura 14.


Figura 14: Testando conexões de endpoint

Se as conexões do terminal foram configuradas conforme necessário, a mensagem “Conexão testada com sucesso” deve ser exibida, conforme mostrado na Figura 15. Clique em Avançar.


Figura 15: Conexão testada com sucesso

Criando uma tarefa de migração


Tendo criado uma instância de replicação e endpoints de banco de dados, em seguida, criaremos uma tarefa de migração para conectar-se aos endpoints e realmente transferir os dados. Em Criar tarefa assistente, especifique um Nome da tarefa (um padrão também é especificado) e adicione uma descrição da tarefa (consulte a Figura 16). Selecione a opção para Iniciar tarefa ao criar .


Figura 16: Assistente de criação de tarefas

Os endpoints de Origem e Destino e a instância de replicação foram configurados anteriormente e não podem ser modificados ao criar uma tarefa. Selecione um tipo de migração , que lista três opções, conforme mostrado na Figura 17.
  • Migrar dados existentes :migra os esquemas, tabelas e dados de tabela existentes que já existem no banco de dados de origem, mas não migra as alterações subsequentes continuamente.
  • Migre os dados existentes e replique as mudanças em andamento :migra os esquemas, tabelas e dados de tabela existentes que já existem no banco de dados de origem e também migra as alterações subsequentes continuamente.
  • Replicar apenas alterações de dados :não migra esquemas, tabelas e dados existentes e migra apenas as alterações de dados.

Selecione Migrar dados existentes opção, conforme mostrado na Figura 17. Para migrar as alterações, que é o que as outras duas opções fornecem, o tempo de retenção do log binário na instância de banco de dados MySQL deve ser aumentado para 24 horas ou mais.


Figura 17: Selecionando o tipo de migração como Migrar dados existentes

Em seguida, defina as Configurações da tarefa . O modo de preparação da tabela de destino A configuração se aplica às tabelas no banco de dados de destino e oferece três opções:
  • Não faça nada :Os dados e metadados das tabelas de destino não são alterados
  • Soltar tabelas no destino :As tabelas existentes, se houver, são eliminadas e novas tabelas são criadas
  • Truncar :as tabelas são truncadas, o que implica que os dados da tabela são excluídos, mas os metadados da tabela não são alterados. O Incluir colunas LOB na replicação A configuração se aplica às colunas de tipo de dados LOB no banco de dados de origem e oferece três opções:
    • Não inclua colunas LOB :as colunas LOB são excluídas da migração
    • Modo LOB completo :Migra LOBs completos independentemente do tamanho; Os LOBs são migrados em partes, o que pode retardar o processo de migração
    • Modo LOB limitado :Trunca os LOBs para o tamanho especificado em tamanho máximo de LOB (kb)

Selecione Modo de preparação da tabela de destino como Não fazer nada, conforme mostrado na Figura 18. Selecione Incluir colunas LOB na replicação como modo LOB limitado e especifique Tamanho máximo de LOB como 32 kb (padrão). Selecione Ativar registro opção.


Figura 18: Configurações da tarefa

Em seguida, adicione regras de seleção e de transformação em Mapeamentos de tabela , conforme mostrado na Figura 19. Os mapeamentos de tabela podem ser adicionados usando o Guiado interface do usuário ou como JSON . A IU guiada é recomendada. Pelo menos uma regra de seleção deve ser adicionada e as regras de transformação são opcionais. As regras de seleção são aplicadas, enquanto a seleção de esquemas, tabelas e colunas do banco de dados de origem e as regras de transformação são aplicadas antes que esquemas, tabelas e colunas sejam migrados para o banco de dados de destino.


Figura 19: Mapeamentos de tabela

O esquema pode ser selecionado em O nome do esquema é menu suspenso ou, se nenhum estiver listado, selecione Inserir um esquema e especifique um esquema em Nome do esquema é como campo. A ação lista suspensa duas opções:Incluir e Excluir . A opção Incluir inclui as seleções feitas para esquemas e tabelas e a opção Excluir exclui os esquemas e tabelas. As Exclusões são processadas após as Inclusões. Nem todos os esquemas precisam ser selecionados e nem todas as tabelas de um esquema precisam ser selecionadas.

Vamos adicionar a seguinte regra de seleção:
  • Incluir todos os esquemas e todas as tabelas do banco de dados de origem

Para a regra de seleção, selecione Inserir um esquema e especifique O nome do esquema é como % , que seleciona todos os esquemas no banco de dados de origem, conforme mostrado na Figura 20. Especifique Table name is like como % , que seleciona todas as tabelas nos esquemas selecionados. Selecione Ação como Incluir .


Figura 20: Configurando uma regra de seleção

Clique em Adicionar regra de seleção (ver Figura 21).


Figura 21: Adicionando uma regra de seleção

Uma regra de seleção é adicionada, conforme mostrado na Figura 22. Quando a tarefa é criada, uma função do IAM dms-cloudwatch-logs-role é criado para permitir que o DMS acesse o CloudWatch.


Figura 22: Regra de seleção adicionada

Em seguida, adicione uma regra de transformação. Para isso, clique em adicionar regra de transformação link, como mostrado na Figura 23.


Figura 23: Adicionar regra de transformação

Uma regra de transformação tem configurações para o Destino . A regra tem três opções, conforme mostrado na Figura 24.
  • Esquema
  • Tabela
  • Coluna

Onde especifica um subconjunto dos objetos selecionados pelas regras de seleção. A ação é a transformação que deve ser aplicada e as seguintes opções estão disponíveis:
  • Renomear para (disponível para objetos Schema e Table)
  • Remover coluna (disponível para Colunas)
  • Criar letras minúsculas (disponível para esquemas, tabelas e colunas)
  • Tornar maiúsculas (disponível para esquemas, tabelas e colunas)
  • Adicionar prefixo (disponível para esquemas, tabelas e colunas)
  • Remover prefixo (disponível para esquemas, tabelas e colunas)


Figura 24: Configurações de regras de transformação

O PostgreSQL usa letras minúsculas em esquemas, tabelas e colunas. Vamos adicionar três regras de transformação:
  • Torne todos os esquemas em letras minúsculas
  • Torne todas as tabelas em minúsculas
  • Torne todas as colunas em minúsculas

Para adicionar a primeira dessas regras de transformação, selecione Destino como Esquema conforme mostrado na Figura 25. Especifique Schema name is like % . Selecione Ação como Faça minúsculas e clique em Adicionar regra de transformação .


Figura 25: Adicionando uma regra de transformação

Uma regra de transformação é adicionada (veja a Figura 26). Para adicionar outra regra de transformação, clique em adicionar regra de transformação ligar novamente.


Figura 26: Regra de transformação adicionada

Selecione Destino como Tabela , conforme mostrado na Figura 27. Especifique Schema name is like % . Selecione O nome da tabela é como % . Selecione Ação como Faça minúsculas e clique em Adicionar regra de transformação .


Figura 27: Adicionando uma regra de transformação para renomear uma tabela

Selecione Destino como Coluna , conforme mostrado na Figura 28. Especifique Schema name is like % . Selecione O nome da tabela é como % . Selecione O nome da coluna é como % . Selecione Ação como Faça minúsculas e clique em Adicionar regra de transformação .


Figura 28: Adicionando uma regra de transformação para tornar o nome da coluna em minúsculas

As três regras de seleção e uma regra de transformação adicionada são mostradas na Figura 29. Quando a tarefa é executada, as regras de seleção são aplicadas antes das regras de transformação. Para configurações avançadas, clique em Configurações avançadas , conforme mostrado na Figura 29.


Figura 29: Regras de Seleção e Regras de Transformação

Em Configurações avançadas , selecione Configurações da tabela de controle e especifique Criar tabela de controle no destino usando esquema como público , conforme mostrado na Figura 30, e clique em Concluído.


Figura 30: Configurando o Esquema da Tabela de Controle no Destino

A configuração Avançada é adicionada (veja a Figura 31).


Figura 31: Configuração avançada

Depois de configurar a tarefa, clique em Criar tarefa , conforme mostrado na Figura 32, para criar a tarefa.


Figura 32: Criar tarefa

Uma tarefa de migração é criada, conforme mostrado na Figura 33. Inicialmente, o status da tarefa é “Criando”.


Figura 33: Tarefa de migração

Uma tarefa pode ter um dos status discutidos na Tabela 1.
Status Descrição
Criando A tarefa está sendo criada.
Pronto A tarefa está pronta para ser iniciada e executada. Geralmente segue o status "Criando".
Iniciando A tarefa está iniciando, durante o qual a tarefa se conecta à instância de replicação e aos endpoints do banco de dados. As regras de seleção e transformação são aplicadas.
Executando A tarefa está em execução, o que implica que a tarefa está migrando o banco de dados.
Carregamento concluído A tarefa concluiu o carregamento (migração) do banco de dados.
Falha A tarefa falhou.
Erro Ocorreu um erro durante a migração. Alguns dos esquemas e tabelas podem ter migrado com sucesso, mas pelo menos um esquema ou tabela falhou ao migrar.
Modificando A tarefa está sendo modificada, geralmente depois que um usuário modificou a tarefa.
Parando A tarefa está parando, o que geralmente ocorre após o usuário selecionar para interromper uma tarefa.
Parado A tarefa foi interrompida, o que pode ser devido a um usuário ter parado uma tarefa ou porque um tipo de migração de Migrar dados existentes e replicar alterações em andamento é usado e a tarefa concluiu o carregamento inicial .
Excluindo A tarefa está sendo excluída, devido ao usuário ter excluído a tarefa.

Tabela 1: Status da tarefa

Duas funções do IAM, uma para CloudWatch e outra para VPC, são criadas, conforme mostrado na Figura 34.


Figura 34: Funções do IAM para DMS

Conclusão


Neste terceiro tutorial sobre como migrar uma instância de banco de dados MySQL no RDS para uma instância de banco de dados Postgres no RDS, criamos uma migração DMS incluindo instância de replicação, endpoints de migração e tarefa de migração. No quarto tutorial, discutiremos a execução da migração do DMS para realizar a migração e avaliar os resultados.