Atualização da versão principal no Banco de Dados do Azure para MySQL - Servidor Flexível

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Flexível

Nota

Este artigo poderá conter referências ao termo slave (secundário), um termo que a Microsoft já não utiliza. Quando o termo for removido do software, iremos removê-lo deste artigo.

Este artigo descreve como você pode atualizar sua versão principal do MySQL in-loco no Banco de Dados do Azure para o servidor flexível MySQL. Esse recurso permite que os clientes realizem atualizações in-loco de seus servidores MySQL 5.7 para o MySQL 8.0 sem qualquer movimento de dados ou a necessidade de fazer qualquer alteração na cadeia de conexão do aplicativo.

Importante

  • A atualização da versão principal está atualmente indisponível para servidores da versão 5.7 baseados no Burstable SKU.
  • A duração do tempo de inatividade varia de acordo com o tamanho da instância do banco de dados e o número de tabelas que ela contém.
  • Ao iniciar uma atualização de versão principal para o servidor flexível do Banco de Dados do Azure para MySQL por meio da API Rest ou SDK, evite modificar outras propriedades do serviço na mesma solicitação. As alterações simultâneas não são permitidas e podem levar a resultados não intencionais ou falha na solicitação. Realize modificações de propriedade em operações separadas após a conclusão da atualização.
  • A atualização da versão principal do MySQL é irreversível. A implementação poderá falhar se a validação identificar que o servidor está configurado com funcionalidades que tenham sido removidas ou descontinuadas. Você pode fazer as alterações de configuração necessárias no servidor e tentar a atualização novamente.

Pré-requisitos

  • Leia Réplicas com MySQL versão 5.7 deve ser atualizado antes do servidor primário para que a replicação seja compatível entre diferentes versões do MySQL, leia mais sobre Compatibilidade de replicação entre versões do MySQL.
  • Antes de atualizar seus servidores de produção, agora é mais fácil e eficiente com nosso recurso interno Validar no portal do Azure. Esta ferramenta pré-verifica a compatibilidade do seu esquema de banco de dados com o MySQL 8.0, destacando possíveis problemas. Embora ofereçamos essa opção conveniente, também recomendamos que você use a ferramenta oficial do verificador de atualização do Oracle MySQL para testar a compatibilidade do esquema do banco de dados e executar o teste de regressão necessário para verificar a compatibilidade do aplicativo com os recursos removidos/preteridos na nova versão do MySQL.
  • Acione o backup sob demanda antes de executar uma atualização de versão principal no servidor de produção, que pode ser usada para reverter para a versão 5.7 a partir do backup sob demanda completo feito.

Execute uma atualização de versão principal planejada do MySQL 5.7 para o MySQL 8.0 usando o portal do Azure

Para executar uma atualização de versão principal de um banco de dados do Azure para servidor flexível MySQL 5.7 usando o portal do Azure, execute as etapas a seguir.

  1. No portal do Azure, selecione seu banco de dados do Azure existente para o servidor flexível MySQL 5.7.

    Importante

    Recomendamos executar a atualização primeiro em uma cópia restaurada do servidor, em vez de atualizar a produção diretamente. Veja como executar a restauração point-in-time.

  2. Na página Visão geral, na barra de ferramentas, selecione Atualizar.

    Importante

    Antes de atualizar visite o link para a lista de recursos removidos no MySQL 8.0. Verifique os valores de sql_mode preteridos e remova/desmarque-os do seu servidor flexível 5.7 atual do Banco de Dados do Azure para MySQL usando a Folha de Parâmetros do Servidor no portal do Azure para evitar falhas de implantação. sql_mode com valores NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS e NO_TABLE_OPTIONS não são mais suportados no MySQL 8.0.

    Screenshot showing Azure Database for MySQL flexible server Upgrade.

  3. Executar validação de pré-atualização

    Antes de prosseguir com a atualização, clique no botão Validar para verificar a compatibilidade do seu servidor com o MySQL 8.0.

    Screenshot showing validate.

    Importante

    Quando você usa o recurso 'Validar' para verificar a compatibilidade do seu esquema de banco de dados com o MySQL 8.0, esteja ciente de que isso envolve o bloqueio das tabelas para avaliar com precisão todo o esquema. Esse processo pode levar a tempos limite de consulta. Portanto, é aconselhável não realizar a validação durante o horário comercial de pico ou quando seu banco de dados está enfrentando alto tráfego. Escolher um período de baixa atividade para validação pode ajudar a minimizar o impacto em suas operações.

  4. Na barra lateral Atualizar, na caixa de texto Versão do MySQL para atualizar, verifique a versão principal do MySQL para a qual você deseja atualizar, ou seja, 8.0.

    Screenshot showing Upgrade.

    Antes de atualizar seu servidor primário, primeiro você precisa ter atualizado todos os servidores de réplica de leitura associados. Até que isso seja concluído, a atualização será desativada.

  5. No servidor primário, selecione a mensagem de confirmação para verificar se todos os servidores de réplica foram atualizados e, em seguida, selecione Atualizar.

    Screenshot showing upgrade.

    Em servidores autônomos e de réplica de leitura, a Atualização é habilitada por padrão.

Execute uma atualização de versão principal planejada do MySQL 5.7 para o MySQL 8.0 usando a CLI do Azure

Para executar uma atualização de versão principal de um banco de dados do Azure para servidor flexível MySQL 5.7 usando a CLI do Azure, execute as etapas a seguir.

  1. Instale a CLI do Azure para Windows ou use a CLI do Azure no Azure Cloud Shell para executar os comandos de atualização.

    Esta atualização requer a versão 2.40.0 ou posterior da CLI do Azure. Se você estiver usando o Azure Cloud Shell, a versão mais recente já está instalada. Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

  2. Depois de entrar, execute o comando az mysql server upgrade .

    az mysql flexible-server upgrade --name {your mysql server name} --resource-group {your resource group} --subscription {your subscription id} --version 8
    
  3. No prompt de confirmação, digite y para confirmar ou n para interromper o processo de atualização e pressione Enter.

Execute uma atualização de versão principal do MySQL 5.7 para o MySQL 8.0 em um servidor de réplica de leitura usando o portal do Azure

Para executar uma atualização de versão principal de um banco de dados do Azure para servidor flexível MySQL 5.7 para MySQL 8.0 em uma réplica de leitura usando o portal do Azure, execute as etapas a seguir.

  1. No portal do Azure, selecione seu banco de dados do Azure existente para o servidor de réplica de leitura flexível do MySQL 5.7.

  2. Na página Visão geral, na barra de ferramentas, selecione Atualizar.

Importante

Antes de atualizar visite o link para a lista de recursos removidos no MySQL 8.0. Verifique os valores de sql_mode preteridos e remova/desmarque-os do seu servidor flexível 5.7 atual do Banco de Dados do Azure para MySQL usando a Folha de Parâmetros do Servidor no Portal do Azure para evitar falhas de implantação.

  1. Na seção Atualizar, selecione Atualizar para atualizar um banco de dados do Azure para o servidor de réplica de leitura 5.7 flexível do banco de dados do MySQL para o MySQL 8.0.

    Uma notificação é exibida para confirmar que a atualização foi bem-sucedida.

  2. Na página Visão geral, confirme se o servidor de réplica de leitura flexível do Banco de Dados do Azure para MySQL está executando a versão 8.0.

  3. Agora, vá para o seu servidor primário e execute a atualização da versão principal nele.

Execute o mínimo de tempo de inatividade da atualização da versão principal do MySQL 5.7 para o MySQL 8.0 usando réplicas de leitura

Para executar uma atualização de versão principal de um servidor flexível do Banco de Dados do Azure para MySQL 5.7 para o MySQL 8.0 com tempo de inatividade mínimo usando servidores de réplica de leitura, execute as etapas a seguir.

  1. No portal do Azure, selecione seu banco de dados do Azure existente para o servidor flexível MySQL 5.7.

  2. Crie uma réplica de leitura a partir do servidor primário.

  3. Atualize sua réplica de leitura para a versão 8.0.

  4. Depois de confirmar que o servidor de réplica está executando a versão 8.0, interrompa o aplicativo de se conectar ao servidor primário.

  5. Verifique o status da replicação para garantir que a réplica tenha alcançado o primário para que todos os dados estejam sincronizados e que nenhuma nova operação esteja sendo executada no principal.

  6. Confirme com o comando show replica status no servidor de réplica para exibir o status da replicação.

     SHOW SLAVE STATUS\G
    

    Se o estado de Slave_IO_Running e Slave_SQL_Running for sim e o valor de Seconds_Behind_Master for 0, a replicação está funcionando bem. Seconds_Behind_Master indica o quão tarde a réplica está. Se o valor não for 0, a réplica ainda está processando atualizações. Depois de confirmar que o valor de Seconds_Behind_Master é ****, é seguro interromper a replicação.

  7. Promova sua réplica de leitura para primária interrompendo a replicação.

  8. Defina Server Parameter read_only como 0 (OFF) para começar a escrever no primário promovido.

  9. Aponte seu aplicativo para o novo primário (réplica anterior) que está executando o servidor 8.0. Cada servidor tem uma cadeia de conexão exclusiva. Atualize seu aplicativo para apontar para a réplica (anterior) em vez da fonte.

Nota

Esse cenário só incorre em tempo de inatividade durante as etapas 4 a 7.

Perguntas mais frequentes

  • Isso causará tempo de inatividade do servidor e, em caso afirmativo, por quanto tempo?

    Para ter um tempo de inatividade mínimo durante as atualizações, siga as etapas mencionadas em Executar o mínimo de tempo de inatividade da atualização da versão principal do MySQL 5.7 para o MySQL 8.0 usando réplicas de leitura. O servidor ficará indisponível durante o processo de atualização, portanto, recomendamos que você execute essa operação durante a janela de manutenção planejada. O tempo de inatividade estimado depende do tamanho do banco de dados, do tamanho do armazenamento provisionado (IOPs provisionadas) e do número de tabelas no banco de dados. O tempo de atualização é diretamente proporcional ao número de tabelas no servidor. Para estimar o tempo de inatividade do seu ambiente de servidor, recomendamos primeiro executar a atualização na cópia restaurada do servidor.

  • O que acontece aos meus backups após a atualização?

    Todos os backups (automatizados/sob demanda) feitos antes da atualização da versão principal, quando usados para restauração, sempre serão restaurados para um servidor com versão mais antiga (5.7). Todos os backups (automatizados/sob demanda) feitos após a atualização da versão principal serão restaurados para o servidor com a versão atualizada (8.0). É altamente recomendável fazer backup sob demanda antes de executar a atualização da versão principal para uma reversão fácil.

  • Estou atualmente usando Burstable SKU, a Microsoft planeja suportar a atualização de versão principal para este SKU no futuro?

    Burstable SKU não é capaz de suportar a atualização da versão principal devido à limitação de desempenho deste SKU.

    Se você precisar executar uma atualização de versão principal em sua instância de servidor flexível do Banco de Dados do Azure para MySQL e estiver usando atualmente o SKU Burstable, uma solução temporária seria atualizar para SKU de Propósito Geral ou Crítico de Negócios, executar a atualização e voltar para o SKU Burstable.

    Observe que a atualização para um SKU mais alto pode envolver uma alteração no preço e pode resultar em custos maiores para sua implantação. No entanto, como não se espera que o processo de atualização demore muito tempo, os custos adicionais não devem ser significativos.

Próximos passos