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

Migrando um banco de dados MySQL do CloudSQL para o AWS RDS


O Google CloudSQL é um serviço gerenciado para bancos de dados com suporte para MySQL e PostgreSQL. O CloudSQL é integrável com alguns dos outros serviços do Google Cloud Platform, incluindo replicação de dados em várias zonas com failover automático. Neste artigo, discutiremos a migração de uma instância de banco de dados MySQL do Google CloudSQL para o AWS RDS usando o Database Migration Service (DMS). Este artigo tem as seguintes seções:
  • Definindo o ambiente
  • Criando uma instância de banco de dados MySQL RDS
  • Conectando-se ao banco de dados MySQL no RDS
  • Criando um projeto do Google Cloud Platform
  • Criando uma instância do CloudSQL
  • Adicionar um endereço IP da instância de banco de dados do CloudSQL à tabela de rotas da VPC
  • Criando uma instância de replicação DMS
  • Adicionar uma rede para conectividade de instância de replicação à instância de banco de dados CloudSQL
  • Criando endpoints de replicação de banco de dados
  • Criando uma tarefa de replicação
  • Executando a tarefa de replicação
  • Explorando as tabelas migradas
  • Explorando os logs do CloudWatch
  • Exclusão de uma migração
  • Exclusão de instâncias de banco de dados
  • Conclusão

Definindo o ambiente


É necessária uma conta de faturamento do Google Cloud Platform. A conta de nível gratuito do Google Cloud Platform oferece uma avaliação gratuita no primeiro ano. Uma conta da AWS também é necessária; isso pode ser criado em https://aws.amazon.com/resources/create-account/.

Criando uma instância de banco de dados MySQL RDS


Como estaremos migrando um banco de dados MySQL do CloudSQL para o AWS RDS, precisamos criar uma instância de banco de dados MySQL no RDS. Navegue até o RDS em https://aws.amazon.com/rds e, no assistente do RDS, selecione engine como MySQL, conforme mostrado na Figura 1.


Figura 1: Selecionando o Mecanismo de Banco de Dados MySQL

Em Produção? , selecione Desenvolvimento/teste , como mostrado na Figura 2.


Figura 2: Selecionando Desenvolvimento e Teste

Em Especificar detalhes do banco de dados , marque a caixa de seleção Mostrar apenas opções qualificadas para o nível gratuito RDS , conforme mostrado na Figura 3. Selecione License Model como general-public-license. Selecione a versão do mecanismo de banco de dados como MySQL 5.6.35. As versões 5.5, 5.6 e 5.7 do MySQL são compatíveis com o destino DMS. Selecione a classe de instância de banco de dados como db.t2.micro, que tem capacidade de 1 vCPU e 1 GB de RAM. Selecione Multi-AZ Deployment como No. Selecione Storage Type como General Purpose (SSD) e o armazenamento alocado como 5 GB.


Figura 3: Especificar detalhes do banco de dados

Nas configurações do banco de dados, especifique um identificador de instância de banco de dados (mysqldb), Master Username e Master Password, conforme mostrado na Figura 4. Clique em Next Step.


Figura 4: Especificando as configurações do banco de dados

Em Definir configurações avançadas, selecione uma VPC, conforme mostrado na Figura 5. A migração do DMS deve ser criada na mesma VPC que a instância de banco de dados RDS. Defina a zona de disponibilidade como us-east-1b. Selecione a opção Criar novo grupo de segurança. Em Opções de banco de dados, especifique um nome de banco de dados (mysqldb). Especifique uma porta de banco de dados (3306) e selecione um grupo de parâmetros de banco de dados.


Figura 5: Configurando Configurações Avançadas

A maioria ou todas as outras configurações — incluindo Option Group, Enable IAM DB Authentication, Enable Encryption, Backup e Monitoring — podem ser mantidas como padrão (consulte a Figura 6). Os backups automáticos precisam ser habilitados para MySQL no RDS como origem DMS. Clique em Iniciar instância de banco de dados .


Figura 6: Iniciar instância de banco de dados

Uma nova instância de banco de dados começa a ser criada, conforme mostrado pela mensagem na Figura 7. Clique em View Your DB Instances para visualizar as instâncias de banco de dados.


Figura 7: Sua instância de banco de dados está sendo criada

Uma nova instância de banco de dados MySQL no RDS é iniciada, conforme mostrado na Figura 8.


Figura 8: Instância de banco de dados MySQL no RDS

Clique no link Security Group, conforme mostrado na Figura 9, para modificar as regras de entrada/saída para permitir o tráfego de/para todos os endereços IP.


Figura 9: Link do grupo de segurança

Selecione a guia Entrada e clique no botão Editar para modificar as regras de entrada, conforme mostrado na Figura 10.


Figura 10: Modificando regras de entrada

Em Editar regras de entrada, defina Tipo para Todo o tráfego, Protocolo para Todos, Intervalo de portas para 0-65535, Origem para qualquer lugar e clique em Salvar (consulte a Figura 11).


Figura 11: Editar regras de entrada

As regras de entrada modificadas são mostradas na Figura 12.


Figura 12: Regras de entrada

As regras de saída não precisam ser modificadas porque já estão configuradas para permitir o tráfego para todos os IPs de destino, conforme mostrado na Figura 13.


Figura 13: Regras de saída

Conectando ao banco de dados MySQL no RDS


Obtenha o host da instância de banco de dados RDS do Endpoint; o endereço do host é o Endpoint com o sufixo da porta :3306 removido. Conecte-se à instância do banco de dados MySQL no RDS usando o endereço do host e a porta com o seguinte comando mysql para iniciar uma interface de linha de comando do MySQL.
mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=3306 --user=dvohra --password=mysql5db

O host, usuário e senha seriam diferentes para usuários diferentes. Conceda acesso à conta MySQL ao usuário DMS com os comandos a seguir, nos quais o usuário DMS seria diferente para usuários diferentes.
GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON mysqldb.* TO 'dvohra'@'%';GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dvohra'@'%'; 

Criando um projeto do Google Cloud Platform


Você deve criar um projeto do Google Cloud Platform para usar o CloudSQL. Para criar um projeto, clique em Criar um projeto vazio na página Introdução, conforme mostrado na Figura 14.


Figura 14: Criar um projeto vazio

No Novo Projeto assistente, especifique um Nome do projeto (MySQLDB) e clique em Criar , conforme mostrado na Figura 15.


Figura 15: Novo projeto

Um novo projeto é criado, conforme mostrado no Painel na Figura 16.


Figura 16: Novo projeto do Google Cloud Platform

Criando uma instância do CloudSQL


Nesta seção, criaremos uma instância do CloudSQL. Navegue até a URL do CloudSQL https://cloud.google.com/sql/ em um navegador, conforme mostrado na Figura 17. Clique em View Console.


Figura 17: Ver console

Selecione o MySQLDB projeto e clique em Criar instância , conforme mostrado na Figura 18.


Figura 18: Criar instância

Na seção Criar uma instância assistente, selecione MySQL e clique em Avançar , conforme mostrado na Figura 19.


Figura 19: Escolhendo o mecanismo como MySQL

Em Escolha um tipo de instância MySQL , clique em Escolher segunda geração para selecionar o tipo de instância MySQL Second Generation, conforme mostrado na Figura 20. Alguns dos benefícios do tipo de instância Second Generation também estão listados.


Figura 20: Escolhendo uma instância MySQL de segunda geração

Em Criar uma instância MySQL de segunda geração (consulte a Figura 21), especifique um ID de instância e uma senha raiz e selecione uma Região e Zona. Clique em Criar .


Figura 21: Criar uma instância MySQL de segunda geração

Uma instância MySQL começa a ser criada, conforme mostrado na tabela Instances na Figura 22.


Figura 22: Instância MySQL do CloudSQL

Adicionar um endereço IP da instância de banco de dados do CloudSQL à tabela de rotas da VPC


Precisamos modificar a tabela de rotas para a VPC na qual a instância de banco de dados RDS e a migração DMS são criadas para permitir o acesso ao endereço IP da instância do CloudSQL. Primeiro, obtenha o endereço IP da instância do CloudSQL no Console do CloudSQL, conforme mostrado na Figura 23.


Figura 23: Endereço IP da instância de banco de dados CloudSQL

Clique na Tabela de rotas link, conforme mostrado na Figura 24, para a VPC na qual a instância de banco de dados RDS é criada e o DMS deve ser criado posteriormente.


Figura 24: Link da Tabela de Rotas

Selecione a rota listada e clique em Editar, conforme mostrado na Figura 25.


Figura 25: Rota>Editar

Clique em Adicionar outro trajeto (ver Figura 26).


Figura 26: Adicionar outra rota

Especifique o endereço IP da instância do CloudSQL em Destination, conforme mostrado na Figura 27.


Figura 27: Especificando o destino como o endereço IP da instância do CloudSQL

Selecione o Target como o Internet Gateway associado à VPC, conforme mostrado na Figura 28. Um Internet Gateway permite a comunicação entre as instâncias em uma VPC e a Internet.


Figura 28: Selecionando o destino como o gateway da Internet

Clique em Salvar para salvar a rota. Uma rota é adicionada, conforme mostrado na Figura 29.


Figura 29: Rota para instância do CloudSQL

Criando uma instância de replicação DMS


Nesta seção, criaremos uma instância de replicação para migrar uma instância do CloudSQL para o RDS. Clique em Criar migração na página inicial do Serviço de Migração de Banco de Dados, conforme mostrado na Figura 30.


Figura 30: Criar migração

Na página de boas-vindas, clique em Avançar (consulte a Figura 31).


Figura 31: Página de boas-vindas>Próximo

Em Criar instância de replicação página, especifique um nome e uma descrição, conforme mostrado na Figura 32. Selecione uma Classe de Instância como dms.t2.medium. Selecione a versão do mecanismo de replicação como 2.2.1. Selecione a mesma VPC na qual a instância de banco de dados do RDS foi criada. Selecione Multi-AZ A Não. Marque a caixa de seleção Acessível publicamente.


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

Em Avançado, especifique Armazenamento alocado (50 GB), selecione um Grupo de sub-rede de replicação e selecione Zona de disponibilidade igual à instância de banco de dados do RDS, us-east-1b, conforme mostrado na Figura 33. Selecione o grupo de segurança VPC padrão. Selecione a chave mestra KMS criada para DMS.


Figura 33: Configurando opções avançadas

Selecione as configurações padrão de Manutenção e clique em Avançar, conforme mostrado na Figura 34.


Figura 34: Instância de replicação>Próximo

A mensagem “Sua instância de replicação está sendo criada” é exibida, conforme mostrado na Figura 35. Os endpoints do banco de dados de origem e destino podem ser configurados somente após a criação da instância de replicação.


Figura 35: Sua instância de replicação está sendo criada

Quando a instância de replicação é criada, a mensagem “Instância de replicação criada com sucesso” é exibida (consulte a Figura 36).


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

As instâncias de replicação listam a nova instância de replicação criada, conforme mostrado na Figura 37.


Figura 37: Instâncias de replicação

Adicionar uma rede para conectividade de instância de replicação à instância de banco de dados CloudSQL


Primeiro, determine o endereço IP no qual a instância de replicação está sendo executada. O endereço IP pode ser obtido no console da instância de replicação, conforme mostrado na Figura 38.


Figura 38: Endereço IP para instância de replicação

Tendo obtido o endereço IP, em seguida, adicionaremos uma rede composta pelo endereço IP à instância MySQL no CloudSQL. Clique no link da instância do CloudSQL MySQL, conforme mostrado na Figura 39.


Figura 39: Instância de banco de dados MySQL do CloudSQL

Clique em Instância de banco de dados MySQL de autorização página de detalhes, como mostrado na Figura 40.


Figura 40: Autorização

Clique em Adicionar rede (ver Figura 41).


Figura 41: Adicionar rede

Em Nova rede , especifique um nome de rede e um endereço IP de rede como o endereço IP da instância de replicação, conforme mostrado na Figura 42, e clique em Concluído.


Figura 42: Adicionando nova rede ao CloudSQL

Uma nova rede é adicionada, conforme mostrado na Figura 43. Clique em Salvar para salvar a rede.


Figura 43: Salvando nova rede

Uma mensagem “A instância está sendo atualizada” é exibida, conforme mostrado na Figura 44.


Figura 44: A instância está sendo atualizada

Quando a instância for atualizada, o ícone da instância indicará o mesmo, conforme mostrado na Figura 45.


Figura 45: Instância atualizada

Clique em Visão geral (consulte a Figura 46) para exibir a visão geral da instância.


Figura 46: Visão geral

A nova rede é listada em Redes autorizadas nos Detalhes da instância página, como mostrado na Figura 47.


Figura 47: Redes autorizadas

Criando endpoints de replicação de banco de dados


Em seguida, criaremos os endpoints do banco de dados de origem e destino. Especifique identificadores de endpoint para bancos de dados de origem e destino. Para o mecanismo de origem, selecione mysql , conforme mostrado na Figura 48.


Figura 48: Selecionando o mecanismo de origem como mysql

Selecione o mecanismo de destino como mysql também, como mostrado na Figura 49.


Figura 49: Selecionando o Target Engine como mysql

Para o nome do servidor de origem, copie o endereço IPv4 da instância do CloudSQL, conforme mostrado na Figura 50.


Figura 50: Endereço IPv4 da instância do CloudSQL

Para o banco de dados de destino, especifique o nome do servidor como o Endpoint menos o sufixo da porta “:3306” para a instância de banco de dados RDS para banco de dados MySQL (consulte a Figura 51). Especifique Porta para bancos de dados de origem e destino como 3306. Selecione o modo SSL como nenhum para conexões de origem e destino. Especifique o nome de usuário do banco de dados de origem como root e a senha conforme definida ao criar a instância do CloudSQL. Da mesma forma, defina o nome de usuário e a senha para o banco de dados de destino no RDS.


Figura 51: Configurando detalhes de conexão de banco de dados de origem e destino

Para a seção Avançado dos bancos de dados de origem e destino, selecione a chave mestra KMS dms, que foi criada para o DMS. Clique em Executar teste , conforme mostrado na Figura 52, para a conexão de origem. Da mesma forma, clique em Executar teste para a conexão de destino.


Figura 52: Teste de corrida

Se o resultado do teste for “Conexão testada com sucesso” para as conexões de banco de dados de origem e destino, clique em Avançar, conforme mostrado na Figura 53.


Figura 53: Testando Conexões

Criando uma tarefa de replicação


Em Create task, especifique um nome de tarefa e uma descrição de tarefa, conforme mostrado na Figura 54. O endpoint de origem, o endpoint de destino e a instância de replicação são codificados permanentemente. Selecione Tipo de migração como Migrar dados existentes. Marque a caixa de seleção Iniciar tarefa ao criar.


Figura 54: Criar tarefa

Em Configurações da tarefa, selecione/defina o Modo de preparação da tabela de destino como Não faça nada , Incluir colunas LOB na replicação como modo LOB limitado , e o tamanho máximo do LOB como 32 kb, conforme mostrado na Figura 55. Selecione Ativar registro opção.


Figura 55: Configurações da tarefa

Em Mapeamentos de tabela , mostrado na Figura 56, pelo menos uma regra de seleção precisa ser adicionada.


Figura 56: Mapeamentos de tabela

Selecione Inserir um esquema opção no Nome do esquema é campo. Especifique O nome do esquema é semelhante mysql , conforme mostrado na Figura 57. Especifique O nome da tabela é semelhante innodb_index_stats. Selecione Ação como Incluir . Clique em Adicionar regra de seleção .


Figura 57: Adicionando uma regra de seleção

Para adicionar outra regra de seleção, clique em adicionar regra de seleção link, como mostrado na Figura 58.


Figura 58: Adicionar regra de seleção

Adicione uma regra de seleção para incluir a tabela mysql.innodb_table_stats , conforme mostrado na Figura 59.


Figura 59: Adicionando uma regra de seleção para mysql.innodb_table_stats

As regras de seleção podem ser adicionadas, uma para cada tabela, ou usando uma expressão regular curinga. Em seguida, usaremos um % para adicionar uma regra de seleção. Clique em adicionar regra de seleção , como mostrado na Figura 60.


Figura 60: Adicionar link de regra de seleção

Especifique Esquema como mysql e especifique Nome da tabela como time_zone% , que representa todas as tabelas que começam com “time_zone” (consulte a Figura 61).


Figura 61: Adicionando uma regra de seleção para incluir todas as tabelas no esquema mysql começando com time_zone

Clique em Criar tarefa para criar uma tarefa, conforme mostrado na Figura 62.


Figura 62: Criar tarefa

Uma nova tarefa é adicionada com status como Criando inicialmente, conforme mostrado na Figura 63. Clique em Atualizar dados do servidor periodicamente para atualizar o status da tarefa.


Figura 63: Tarefa adicionada com status Criando

Quando a tarefa foi criada e está pronta para ser executada, o Status se torna Pronto, conforme mostrado na Figura 64.


Figura 64: Status da tarefa pronto

Executando a tarefa de replicação


Para iniciar a instância de replicação, clique no botão Start/Resume, conforme mostrado na Figura 65.


Figura 65: Iniciar/Retomar

O status da tarefa se torna Iniciando (veja a Figura 66). Periodicamente, clique em Atualizar dados do servidor botão para atualizar o status conforme mostrado na Figura 66.


Figura 66: Status da Tarefa Iniciando

O status da tarefa se torna Em execução quando a tarefa começa a ser executada. Quando o carregamento completo for concluído, o status se tornará Carregamento concluído , conforme mostrado na Figura 67.


Figura 67: Carregamento concluído

Explorando as tabelas migradas


As Tabelas carregadas A coluna tem um valor de 7 para as sete tabelas migradas, conforme mostrado na Figura 68.


Figura 68: Sete tabelas migradas

Para encontrar detalhes sobre as tabelas migradas, selecione as Estatísticas da tabela guia, como mostrado na Figura 69.


Figura 69: Estatísticas da tabela

Todas as tabelas que foram migradas são listadas, conforme mostrado na Figura 70.


Figura 70: Tabelas migradas

Explorando os logs do CloudWatch


Para explorar os logs do CloudWatch, clique no link em Logs guia (veja a Figura 71).


Figura 71: Link de registros

Os logs do CloudWatch listam uma entrada de log para cada tabela migrada, conforme mostrado na Figura 72. Quando todas as tabelas configuradas usando as regras de seleção e transformação forem migradas, a entrada de log "Todas as tabelas estão carregadas" será adicionada.


Figura 72: Registros do CloudWatch

Quando todas as tabelas forem carregadas, uma entrada de log Gerenciamento de tarefas encerrada é adicionado, como mostrado na Figura 73.


Figura 73: Gerenciamento de tarefas encerrado

Excluindo uma migração


Para excluir uma migração, a sequência é inversa à criação de uma migração.
  1. Exclua a(s) tarefa(s) de migração.
  2. Exclua os endpoints do banco de dados.
  3. Exclua a instância de replicação.

Para excluir a tarefa, selecione a tarefa e clique em Excluir, conforme mostrado na Figura 74.


Figura 74: Tarefa>Excluir

Na caixa de diálogo Excluir tarefa, clique em Excluir, conforme mostrado na Figura 75.


Figura 75: Excluir caixa de diálogo de confirmação de tarefa

O status da tarefa se torna Excluindo (veja a Figura 76).


Figura 76: Exclusão de Tarefa

Para excluir os Endpoints, selecione os endpoints e clique em Delete, conforme mostrado na Figura 77.


Figura 77: Pontos de extremidade>Excluir

No ponto de extremidade Excluir caixa de diálogo de confirmação, clique em Excluir, conforme mostrado na Figura 78.


Figura 78: Excluir caixa de diálogo de confirmação de endpoint

O status dos endpoints se torna Deleting, conforme mostrado na Figura 79.


Figura 79: Excluindo endpoints

Para excluir uma instância de replicação, selecione a instância de replicação e clique em Excluir, conforme mostrado na Figura 80.


Figura 80: Instâncias de replicação>Excluir

Em Excluir instância de replicação caixa de diálogo de confirmação, clique em Excluir (veja a Figura 81).


Figura 81: Caixa de diálogo de confirmação Excluir instância de replicação

O status da instância de replicação se torna Deleting, conforme mostrado na Figura 82.


Figura 82: Excluindo instância de replicação

Exclusão de instâncias de banco de dados


Em seguida, exclua os bancos de dados de origem e destino. Para excluir o banco de dados de destino, que é um banco de dados MySQL no RDS, selecione a instância do banco de dados na tabela All Instances e clique em Instance Actions>Delete, conforme mostrado na Figura 83.


Figura 83: Ações da instância>Excluir

Em Excluir instância de banco de dados, selecione a opção de não criar um instantâneo final e marque a caixa de seleção de confirmação e clique em Excluir, conforme mostrado na Figura 84.


Figura 84: Caixa de diálogo Excluir instância de banco de dados

A instância de banco de dados do RDS começa a ser excluída, conforme indicado pelo status Deleting na Figura 85.


Figura 85: Exclusão de instância de banco de dados RDS

Para excluir a instância de banco de dados do CloudSQL, clique com o botão direito do mouse em mysql Ícone de gerenciamento de instância de banco de dados e selecione Excluir (consulte a Figura 86).


Figura 86: CloudSQL mysql>Excluir

Em Excluir instância? caixa de diálogo de confirmação, especifique o nome da instância no campo fornecido para confirmar que a instância deve ser excluída e clique em Excluir, conforme mostrado na Figura 87.


Figura 87: Caixa de diálogo de confirmação de exclusão de instância

Conclusão


Neste artigo, discutimos a migração do MySQL no CloudSQL para o AWS RDS usando o AWS Database Migration Service.