Tutorial: como migrar do MySQL para o Cloud SQL usando fluxo de trabalho automatizado

Neste tutorial, descrevemos como migrar um banco de dados MySQL 5.7 para o Cloud SQL usando o fluxo de trabalho automatizado de migração do Cloud SQL. Ele segue a estratégia de promoção de réplica externa descrita no documento complementar, Migração do MySQL para o Cloud SQL. No tutorial, consideramos que você tenha familiaridade com os conceitos do MySQL, entenda os recursos e funcionalidades do Cloud SQL e tenha lido o documento de conceitos.

Objetivos

  • Implantar um banco de dados MySQL no Compute Engine para atuar como o banco de dados de origem.
  • Confirmar que todos os pré-requisitos de migração do Cloud SQL foram atendidos.
  • Criar uma réplica do Cloud SQL usando o fluxo de trabalho de migração automatizada.
  • Confirmar que o banco de dados de réplicas está em execução no Cloud SQL.
  • Promover o banco de dados Cloud SQL de réplica a primário.
  • Atualizar o aplicativo para usar o banco de dados Cloud SQL.
  • Confirmar que o banco de dados primário está em execução no Cloud SQL.

Custos

Neste tutorial, usamos os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem ser qualificados para uma avaliação gratuita.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative as APIs Compute Engine and Cloud SQL.

    Ative as APIs

Arquitetura

A arquitetura inicial tem um aplicativo WordPress baseado em MySQL que é implementado usando o Cloud Deployment Manager e executado no Compute Engine. Embora este tutorial use o Compute Engine para executar o banco de dados de origem, é possível usar os procedimentos deste tutorial para migrar um banco de dados MySQL de qualquer local que tenha um acesso IPv4 público. Isso inclui ambientes locais, instalações de colocation e locais de provedores de nuvem.

Primeiro, crie um aplicativo executado no Compute Engine que usa o banco de dados MySQL, conforme mostrado no diagrama a seguir:

Arquitetura de banco de dados inicial.

Em seguida, use o comando mysqldump para replicar o banco de dados MySQL para o Cloud SQL, conforme mostrado no diagrama a seguir:

Arquitetura de replicação de banco de dados.

Depois disso, promova a réplica do Cloud SQL como principal e atualize o aplicativo para usar o novo banco de dados principal. Após a migração, a arquitetura usará o banco de dados hospedado no Cloud SQL. No diagrama a seguir, mostramos apps que usam o novo banco de dados do Cloud SQL:

Arquitetura de banco de dados migrada.

Como implantar um banco de dados MySQL de origem no Compute Engine

Para começar, estabeleça um banco de dados MySQL de origem que pode ser movido para o Cloud SQL. Qualquer banco de dados MySQL executando a versão 5.6 ou 5.7 permite que você aproveite o fluxo de trabalho de migração automatizada do Cloud SQL.

Implantar o WordPress usando o Deployment Manager

Para simplificar a implantação de um banco de dados de origem, use uma instalação do WordPress com base nas soluções Click-to-Deploy do Google Cloud Marketplace. O WordPress (em inglês) é uma ferramenta comum de criação de sites e gerenciamento de conteúdo que usa o MySQL. A versão "click-to-deploy" oferecida no Google Cloud usa o MySQL 5.7 e atende aos requisitos de migração para o Cloud SQL.

  1. No Console do Cloud, acesse a página Google Click-to-Deploy:

    Ir para a página "Google Click-to-Deploy"

  2. Clique na solução WordPress.

  3. Clique em Iniciar.

  4. Preencha os campos a seguir:

    1. Nome da implantação: my-wordpress-server
    2. Zona: us-east-1b
    3. Endereço de e-mail do administrador: digite seu endereço de e-mail.
    4. Firewall: verifique se as opções HTTP e HTTPS estão selecionadas.
  5. Clique em Implantar.

    O processo de instalação da VM do WordPress é iniciado. Após alguns minutos, o Deployment Manager exibe os detalhes da VM do WordPress implantada. Salve todas essas informações para uso posterior no tutorial, principalmente os dados do usuário root do MySQL e o nome de usuário e a senha wordpress.

  6. Clique no link Endereço do site para verificar se o site do WordPress está em execução.

    Se tudo estiver funcionando, você verá uma saída como a seguinte:

    Um exemplo da página inicial do WordPress com click-to-deploy.

Atribuir escopos de API ao servidor WordPress

Para concluir a instalação da instalação do WordPress na VM do Compute Engine, é preciso adicionar permissões de escopo da API. Isso permite que a VM grave suas exportações de banco de dados para o Cloud Storage. As exportações para o Cloud Storage são usadas posteriormente para criar sua réplica do Cloud SQL.

  1. Abra o Cloud Shell:

    Abra o Cloud Shell

  2. Desligue a VM do WordPress:

    gcloud compute instances stop my-wordpress-server-vm \
        --zone us-east1-b
    

    A VM precisa estar em um estado parado para que você possa aplicar novas permissões por meio dos escopos da API.

    Antes de avançar para a próxima etapa, aguarde o servidor terminar de desligar.

  3. Aplique o novo escopo para permitir que a VM grave no Cloud Storage:

    gcloud beta compute instances set-scopes my-wordpress-server-vm \
        --scopes storage-rw \
        --zone us-east1-b
    
  4. Reinicie a VM:

    gcloud compute instances start my-wordpress-server-vm \
        --zone us-east1-b
    

Sua VM agora pode ler e gravar no Cloud Storage.

Conectar-se como administrador do WordPress e criar uma postagem

A próxima etapa é conectar-se à interface de administração do WordPress para criar uma nova postagem e verificar se o aplicativo e o banco de dados estão funcionando corretamente. Seu endereço IP pode ter sido alterado depois de parar e reiniciar o servidor, portanto, verifique o endereço IP público atual da sua VM do WordPress.

  1. Verifique o endereço IP público da VM que está executando o WordPress:

    1. No Console do Cloud, acesse a página Instâncias de VM:

      Acessar a página Instâncias de VM

    2. Anote o valor de IP externo para my-wordpress-server-vm..

  2. Verifique se o aplicativo WordPress está em execução. Usando o endereço IP externo que acabou de obter, use seu navegador para acessar o endereço IP público da sua VM do WordPress:

    http://your-public-ip
    

    Se o endereço IP estiver correto, será possível ver a página padrão do WordPress novamente.

  3. No navegador, vá para a página de administração do WordPress:

    http://your-public-ip/wp-admin
    
  4. Use o usuário e senha de administrador do WordPress para fazer login na interface de administrador.

  5. Clique em Postagens e, em seguida, clique em Adicionar novo.

  6. Insira o título My First Post à sua postagem e adicione um texto.

  7. Quando terminar, clique em Publicar e, em seguida, clique em Publicar novamente para confirmar:

    Publicação da primeira postagem.

  8. Clique no link Endereço do site para ver sua nova postagem.

Agora você tem uma VM do WordPress executando um banco de dados MySQL versão 5.7.

Como verificar os pré-requisitos de migração do Cloud SQL

Antes de poder migrar para o Cloud SQL usando o fluxo de trabalho de migração automatizada, verifique se você atende aos pré-requisitos para configurar o servidor de banco de dados de origem. As seções a seguir orientam esse processo, um pré-requisito de cada vez.

Conecte-se à VM usando SSH

É necessário confirmar os pré-requisitos na VM em que o WordPress está sendo executado, portanto, conecte-se à instância de VM para começar.

  1. No Console do Cloud, acesse a página Instâncias de VM:

    Acessar a página Instâncias de VM

  2. Na lista de instâncias de máquina virtual, clique em SSH na linha da instância a que você quer se conectar:

    Conexão com a VM do WordPress usando SSH.

    O Cloud Shell é aberto e fornece acesso de linha de comando à sua VM.

Confirme todos os pré-requisitos

Agora que você estabeleceu uma conexão de linha de comando com o servidor WordPress, pode garantir que o MySQL esteja pronto para ser migrado.

Criar um usuário de replicação

Para permitir a replicação do banco de dados, crie uma conta de usuário de replicação no MySQL. Faça isso para não precisar do usuário root nas etapas posteriores.

  1. Na VM do WordPress, conecte-se ao banco de dados MySQL como usuário root:

    mysql -u root -p -h localhost wordpress
    

    Quando solicitado, digite a senha root que você anotou anteriormente no Deployment Manager.

  2. Enquanto estiver conectado ao banco de dados MySQL, crie o usuário de replicação:

    CREATE USER 'replication'@'%' IDENTIFIED BY 'mysupersecretpassword';
    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
    

    A saída será exibida da seguinte maneira:

    mysql> CREATE USER 'replication'@'%' IDENTIFIED BY 'mysupersecretpassword';
    Query OK, 0 rows affected (0.00 sec)
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
    Query OK, 0 rows affected (0.00 sec)
    
  3. Digite quit para sair da interface do mysql.

Agora você tem um usuário de replicação que pode ser usado pelo fluxo de trabalho automatizado de migração do Cloud SQL.

Atualize o arquivo de configuração do MySQL

Há quatro variáveis para definir no arquivo de configuração do MySQL. O arquivo de configuração está localizado em /etc/mysql/mysql.conf.d/mysqld.cnf. Os valores que você precisa adicionar são:

  • server-id. Este valor precisa ser definido para ativar o log binário. O valor precisa estar entre 1 e (2^32)-1 (4.294.967.295) e ser exclusivo para cada servidor. Neste tutorial, o valor é definido como 2.
  • log-bin. Essa configuração ativa a geração de registros binários e especifica o nome de arquivo que o banco de dados usará para armazenar o registro. Neste tutorial, o valor é definido como mysql-bin.
  • gtid_mode. Essa configuração permite que os GTIDs (identificadores de transação global) sejam usados para identificar transações. É necessário incluir o próximo comando para essa configuração funcionar. Neste tutorial, o valor é definido como on.
  • enforce-gtid-consistency. Essa configuração aplica a consistência do GTID, permitindo apenas instruções que possam ser registradas por meio dele. Neste tutorial, o valor é definido como true.

Nas etapas a seguir, descrevemos como definir os valores para todas as quatro variáveis do MySQL.

  1. Na janela do terminal da VM do WordPress, defina as configurações mysqld.cnf descritas anteriormente:

    sudo -s
    echo "server-id = 2" >> /etc/mysql/mysql.conf.d/mysqld.cnf
    echo "log-bin = mysql-bin" >> /etc/mysql/mysql.conf.d/mysqld.cnf
    echo "gtid_mode = ON" >> /etc/mysql/mysql.conf.d/mysqld.cnf
    echo "enforce-gtid-consistency = true" >> /etc/mysql/mysql.conf.d/mysqld.cnf
    exit
    
  2. Reinicie o servidor MySQL para que os comandos entrem em vigor:

    sudo service mysql restart
    
  3. Faça login na interface do mysql novamente:

    mysql -u root -p -h localhost wordpress
    
  4. Verifique se todas as variáveis foram definidas corretamente após a reinicialização:

    SELECT @@gtid_mode, @@enforce_gtid_consistency, @@server_id;
    

    A saída a seguir será exibida:

    mysql> select @@gtid_mode, @@enforce_gtid_consistency, @@server_id;
    +-------------+----------------------------+-------------+
    | @@gtid_mode | @@enforce_gtid_consistency | @@server_id |
    +-------------+----------------------------+-------------+
    | ON          | ON                         |           2 |
    +-------------+----------------------------+-------------+
    1 row in set (0.00 sec)
    
  5. Digite quit para fechar a interface do mysql.

Ative o acesso IPv4 ao banco de dados

Para usar o fluxo de trabalho de migração automatizada do Cloud SQL, o banco de dados de origem precisa estar acessível usando um endereço IPv4 público. Como o servidor WordPress tem um endereço IP público atribuído automaticamente, é possível permitir essa conectividade usando uma regra de firewall da VPC

  1. No Cloud Shell, adicione uma nova marca de rede à sua VM do WordPress:

    gcloud compute instances add-tags my-wordpress-server-vm \
        --tags allowmysql \
        --zone us-east1-b
    
  2. Permita o tráfego de rede MySQL da internet pública para sua VM:

    gcloud compute firewall-rules create "mysql-replication-access" \
        --allow tcp:3306 \
        --target-tags "allowmysql"
    

Agora você tem uma regra de firewall que permitirá o tráfego do MySQL na porta 3306 da Internet pública para sua VM do WordPress.

Os bancos de dados de produção podem ser administrados e protegidos de várias maneiras. Entre em contato com os administradores de rede e segurança para coordenar o acesso necessário a qualquer migração de banco de dados de produção com o fluxo de trabalho de migração automatizada.

O servidor WordPress com click-to-deploy foi desenvolvido para permitir que o servidor da Web local acesse o banco de dados local. Como você quer permitir outras conexões de banco de dados para respaldar sua migração, é necessário atualizar a entrada bind_address do MySQL no arquivo mysqld.cnf para detectar em portas diferentes de localhost.

  1. Na janela do terminal da VM do WordPress, altere o valor bind_address do MySQL para 0.0.0.0:

    sudo sed -i 's|bind-address.*|bind-address = 0.0.0.0|' /etc/mysql/mysql.conf.d/mysqld.cnf
    

    Isso permite as conexões do MySQL em todas as interfaces de rede disponíveis.

  2. Reinicie seu banco de dados MySQL para que as alterações entrem em vigor:

    sudo service mysql restart
    

Crie o arquivo de backup do banco de dados

Na sequência, você precisa criar um arquivo de backup do banco de dados para gerar a réplica do Cloud SQL. Para isso, use o comando mysqldump do MySQL.

Verificação básica de dados

Antes de criar seu backup, é necessário validar o número de postagens no seu banco de dados WordPress. Essa é uma maneira de verificar se o backup do conteúdo foi realizado com êxito.

  1. Conecte-se ao servidor WordPress usando SSH.
  2. Conte o número de linhas na tabela wp_posts:

    mysql -u root -p -D wordpress -e "SELECT count(*) from wp_posts"
    

    Você verá uma saída semelhante a esta:

    SELECT count(*) from wp_posts;
    +----------+
    | count(*) |
    +----------+
    |        6 |
    +----------+
    1 row in set (0.01 sec)
    

Agora você sabe o número inicial de linhas na sua tabela.

Crie um backup do banco de dados e faça upload no Cloud Storage

A próxima tarefa consiste em copiar os resultados do processo de backup para um bucket do Cloud Storage.

  1. No Cloud Shell, crie um novo bucket do Cloud Storage para armazenar o backup do banco de dados:

    gsutil mb gs://${DEVSHELL_PROJECT_ID}-mysqldump/
    

    Isso cria um bucket com um nome exclusivo, baseado no ID do projeto do Google Cloud, para o projeto armazenar o arquivo mysqldump.

  2. No Console do Cloud, acesse a página Instâncias de VM:

    Acessar a página Instâncias de VM

  3. Na lista de instâncias de máquina virtual, clique em SSH na linha do servidor WordPress para se conectar à VM:

    Conexão com a VM do WordPress usando SSH.

  4. Na janela do terminal da VM do WordPress, crie um backup chamado mybackup1.sql:

    sudo mysqldump \
        -h localhost -P 3306 -u root -p \
        --databases wordpress \
        --hex-blob --skip-triggers --master-data=1 \
        --order-by-primary --compact --no-autocommit \
        --default-character-set=utf8 \
        --single-transaction --set-gtid-purged=on > mybackup1.sql
    
  5. Digite a senha root do MySQL.

  6. Copie o arquivo mybackup1.sql para o bucket do Cloud Storage:

    sudo gsutil cp ./mybackup1.sql gs://[your_project_name]-mysqldump
    

    A saída será exibida da seguinte maneira:

    Copying file://./mybackup1.sql [Content-Type=application/x-sql]...
    / [1 files][510.4 KiB/510.4 KiB]
    Operation completed over 1 objects/510.4 KiB.
    

    Agora você fez o upload do seu arquivo de backup para o Cloud Storage.

Como criar uma réplica externa do Cloud SQL usando o fluxo de trabalho de migração automatizada

Agora que você sabe o número de linhas no seu banco de dados e tem um backup completo dele, pode criar um banco de dados de réplica no Cloud SQL usando o fluxo de trabalho automatizado de migração.

  1. No Console do Cloud, acesse a página Cloud SQL:

    Acessar a página "Cloud SQL"

  2. Clique em Migrar dados.

  3. Clique em Iniciar migração.

  4. Na seção Detalhes da origem dos dados, forneça os seguintes valores:

    • Nome da fonte de dados: um nome para o banco de dados de origem. Use mywordpress.
    • Endereço IP público de origem: o endereço IP externo da sua VM do WordPress. Esse valor foi recebido anteriormente quando o Deployment Manager criou o servidor.
    • Número da porta da fonte: 3306
    • Nome de usuário de replicação do MySQL: replication
    • Senha do usuário de replicação do MySQL: mysupersecretpassword
    • Versão do banco de dados: 5.7
  5. Clique em Próxima.

  6. Na seção Criação de réplicas de leitura do Cloud SQL, forneça os seguintes valores:

    • ID da instância da réplica de leitura: o nome da sua instância do serviço Cloud SQL. Use o nome mywordpress-cloudsql.
    • Local: a região e a zona onde sua VM do WordPress foi criada. Neste tutorial, use us-east1-b.
    • Tipo de armazenamento: SSD
    • Capacidade de armazenamento: 10 GB
    • Ativar aumento automático de armazenamento: certifique-se de que essa opção esteja ativada.
    • Arquivo dump SQL: clique em Procurar e selecione o bucket e o arquivo mysqldump que você criou anteriormente.
  7. Clique em Configurações avançadas.

  8. Clique em + Adicionar rede e faça o seguinte:

    • Insira o nome external para a rede.
    • Em Rede, insira 0.0.0.0/0.
    • Clique em Concluído.

    Adicione 0.0.0.0/0 para permitir acesso público à sua réplica externa.

  9. Em Sinalizações do banco de dados, clique em + Adicionar item.

  10. Na lista Escolha um sinalizador, faça o seguinte:

    1. Selecione sql_mode.
    2. Na lista suspensa que aparece à direita, escolha ALLOW_INVALID_DATES.

    A sinalização sql_mode é necessária para migrar um banco de dados do WordPress para o Cloud SQL.

  11. Clique em Criar.

    A instância é criada em segundo plano.

  12. Na seção Sincronização de Dados, anote o valor do campo Endereço IP de saída.

    Pode levar alguns minutos para que esse campo seja preenchido. No entanto, quando você tiver um endereço IP, a instância do Cloud SQL terá sido criada.

  13. Clique em Próximo.

  14. Clique em Concluir.

O fluxo de trabalho de migração automatizada começará a replicar seus dados do banco de dados de origem na VM do WordPress para o banco de dados de réplica do Cloud SQL. Esse processo pode demorar um pouco, dependendo do tamanho do seu banco de dados, da distância entre a origem e o destino e os IOPS disponíveis no banco de dados primário e da réplica. Nesse caso, seu banco de dados é pequeno, portanto, o processo é rápido.

Após alguns minutos, aparecerá uma marca de seleção verde ao lado do nome do banco de dados, indicando que a replicação está ativada. Clique no seu novo banco de dados e você também verá a mensagem A replicação está ativada.

O console mostra que a replicação está ativada.

Isso confirma que a operação de replicação do Cloud SQL foi bem-sucedida.

Crie contas de usuário MySQL no banco de dados de réplica

Ao migrar um único banco de dados como parte de um servidor MySQL, o processo de migração não migra as contas de usuário do próprio banco de dados. Para limitar as alterações aos usuários e ao aplicativo, é necessário recriar contas críticas no banco de dados de réplica do Cloud SQL.

  1. No Cloud Shell, redefina a conta de usuário raiz no banco de dados do Cloud SQL para usar a mesma senha raiz que seu banco de dados principal do WordPress.

    gcloud sql users set-password root --host=% \
        --instance=mywordpress-cloudsql \
        --password=primary-root-password
    
  2. Crie uma conta de usuário do wordpress com um nome de usuário e uma senha correspondentes ao nome e à senha no banco de dados principal do WordPress.

    gcloud sql users create wordpress --host=% \
        --instance=mywordpress-cloudsql \
         --password=your-wordpress-db-password
    

Como confirmar que o banco de dados de réplica está sendo executado no Cloud SQL

Agora que a replicação do Cloud SQL está ativada, verifique a replicação de dados. Para verificar a replicação dos dados, é necessário se conectar ao seu novo banco de dados Cloud SQL e atualizar o banco de dados WordPress primário com novos conteúdos. Se a replicação estiver funcionando, você verá os dados atualizados na réplica do Cloud SQL.

Verificação básica de dados no Cloud SQL

Nas etapas a seguir, demonstramos como se conectar ao banco de dados de réplica do Cloud SQL.

  1. No Console do Cloud, acesse a página Cloud SQL.

    Acessar a página "Cloud SQL"

  2. Clique no banco de dados de réplica para abrir a página Detalhes da instância.

  3. Em Conectar-se a esta instância, clique em Conectar usando o Cloud Shell.

    Isso abre o Cloud Shell e adiciona automaticamente o endereço IP da sua conexão ao firewall.

  4. Pressione ENTER para executar o comando.

  5. Quando a senha for solicitada, digite a senha de usuário raiz do banco de dados.

    Isso estabelece uma conexão MySQL com a réplica do Cloud SQL.

  6. Selecione o banco de dados:

    USE wordpress
    
  7. Execute uma consulta para contar as linhas na tabela wp_posts do banco de dados:

    SELECT count(*) from wp_posts;
    

    A saída corresponde ao resultado anterior do número de linhas:

    mysql> SELECT count(*) from wp_posts;
    +----------+
    | count(*) |
    +----------+
    |        6 |
    +----------+
    1 row in set (0.01 sec)
    

    Isso confirma que a replicação foi concluída com êxito durante a criação do banco de dados.

Mantenha esta sessão do Cloud Shell aberta para as próximas etapas.

Crie novos conteúdos de banco de dados

Agora é possível criar uma nova postagem do WordPress para adicionar contexto ao banco de dados. Isso permite verificar se novos dados estão sendo replicados no Cloud SQL.

  1. No seu navegador, acesse a página de administrador da sua instância do WordPress:

    http://your-public-ip/wp-admin
    
  2. Use o usuário e senha do administrador do WordPress para efetuar login na interface do administrador.

  3. Clique em Postagens e, em seguida, clique em Adicionar novo.

  4. Insira o título My Second Post à sua postagem e adicione um texto.

  5. Clique em Publicar e, em seguida, clique em Publicar para confirmar:

    Publicação da segunda postagem.

  6. Clique no link Endereço do site para ver sua nova postagem.

Verifique se as linhas aumentaram tanto no primário quanto na réplica

Agora é possível verificar se os dados foram adicionados nos bancos de dados primário e de réplica.

  1. Conecte-se à VM do WordPress usando SSH.
  2. Execute uma consulta para contar o número de linhas na tabela wp_posts:

    mysql -u root -p -D wordpress -e "SELECT count(*) from wp_posts"
    

    A saída será exibida da seguinte maneira:

    SELECT count(*) from wp_posts;
    +----------+
    | count(*) |
    +----------+
    |        8 |
    +----------+
    1 row in set (0.01 sec)
    

    Observe que o número de linhas de dados aumentou no banco de dados primário.

  3. Abra a sessão do Cloud Shell que está conectada ao banco de dados de réplica do Cloud SQL.

  4. Execute uma consulta para contar as linhas na tabela wp_posts da réplica:

    SELECT count(*) from wp_posts;
    

    A saída será exibida da seguinte maneira:

    Mysql [wordpress]> SELECT count(*) from wp_posts;
    +----------+
    | count(*) |
    +----------+
    |        8 |
    +----------+
    1 row in set (0.01 sec)
    

    Se essa saída mostrar o mesmo número de linhas na tabela de banco de dados original e de réplica, você confirmou que a replicação foi bem-sucedida quando os novos conteúdos foram adicionados ao banco de dados.

Como promover o banco de dados Cloud SQL de réplica a primário

Agora que sua réplica está em execução no Cloud SQL e você verificou a replicação, é hora de promover a réplica a principal e concluir a migração do banco de dados para o Cloud SQL.

Considerações sobre o tempo de inatividade

Toda migração do MySQL incorre em uma certa quantidade de tempo de inatividade do banco de dados. O tempo de inatividade associado ao fluxo de trabalho de migração automatizada é mínimo, mas ainda causa pelo menos alguns minutos de inatividade. Certifique-se de que entende seus requisitos de aplicativo, objetivos de nível de serviço e acordos de nível de serviço antes de iniciar a migração.

Parar o banco de dados principal

O primeiro passo é parar o serviço MySQL em execução na VM do WordPress. Isso interrompe todas as gravações no banco de dados e inicia a janela de tempo de inatividade do banco de dados e de todos os aplicativos conectados a ele.

  1. Na janela do terminal da VM do WordPress, pare o banco de dados MySQL:

    sudo service mysql stop
    

    Seu banco de dados MySQL principal está offline agora.

  2. No seu navegador, acesse o site WordPress:

    Você vê uma mensagem de erro que confirma que o aplicativo está off-line:

    Erro ao estabelecer uma conexão com o banco de dados.

Atualizar endpoints do aplicativo

Com o banco de dados primário parado, você precisa atualizar o aplicativo para usar o servidor Cloud SQL. Isso confirma a conectividade básica entre o aplicativo e o banco de dados Cloud SQL antes de promover a réplica para primária.

O WordPress tem um arquivo de configuração simples que é preciso atualizar para apontar o aplicativo para a réplica do Cloud SQL.

  1. No Console do Cloud, acesse a página Cloud SQL.

    Acessar a página "Cloud SQL"

  2. Clique no banco de dados de réplica para abrir a página Detalhes da instância.

  3. Copie o endereço IP público.

  4. Conecte-se à sua VM do WordPress usando SSH.

  5. No terminal da instância, atualize os endereços do banco de dados de destino no arquivo de configuração. Substitua your-cloud-sql-ip pelo endereço IP público da réplica do Cloud SQL.

    sudo sed -i -e 's/localhost/your-cloud-sql-ip/' /var/www/html/wp-config.php
    

Promova a réplica

O código do aplicativo foi atualizado para suportar o novo local do banco de dados Cloud SQL. Agora, promova a réplica do Cloud SQL para ser o banco de dados principal. A promoção da réplica do Cloud SQL para banco de dados principal conclui a migração do banco de dados MySQL para o Cloud SQL.

  1. No Console do Cloud, acesse a página Cloud SQL.

    Acessar a página "Cloud SQL"

  2. Clique no banco de dados de réplica para abrir a página Detalhes da instância.

  3. Clique no botão Promover réplica:

    Promoção da réplica para principal.

  4. Clique em OK para iniciar a promoção do banco de dados.

Depois de alguns minutos, o banco de dados é mostrado como disponível na página de instâncias do Cloud SQL. Navegue até o site WordPress e veja se ele está online novamente.

Limpeza

Para evitar cobranças dos recursos usados neste tutorial na sua conta do Google Cloud, siga estas etapas.

Excluir o projeto

  1. No Console do Cloud, acesse a página Gerenciar recursos:

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir