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 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.
- Algumas cargas de trabalho podem não apresentar desempenho aprimorado após a atualização de 5.7 para 8.0. Sugerimos que você avalie o desempenho de sua carga de trabalho criando primeiro um servidor de réplica (como um servidor de teste), depois promovendo-o para um servidor autônomo e, em seguida, executando a carga de trabalho no servidor de teste antes de implementar a atualização em um ambiente de produçã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.
Nota
Ao usar a ferramenta oficial da Oracle para verificar a compatibilidade do esquema, você pode encontrar alguns avisos indicando tokens inesperados em procedimentos armazenados, como:
mysql.az_replication_change_master - at line 3,4255: unexpected token 'REPLICATION'
mysql.az_add_action_history - PROCEDURE uses obsolete NO_AUTO_CREATE_USER sql_mode
Você pode ignorar esses avisos com segurança. Eles se referem a procedimentos armazenados internos prefixados com mysql., que são usados para dar suporte aos recursos do Azure MySQL. Esses avisos não afetam a funcionalidade do seu banco de dados. - 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.
- Antes de prosseguir com a atualização da versão principal, certifique-se de que não há transações XA ativas ou pendentes no banco de dados, pois as transações XA em andamento podem potencialmente causar falha no processo de atualização. Para evitar esse problema, primeiro verifique se há transações XA no estado "preparado" executando
XA RECOVER;
. Para quaisquer transações identificadas, useXA ROLLBACK '{xid}'
; para reverter cada transação, substituindo {xid} pelo ID da transação. Certifique-se de que todas as transações XA sejam confirmadas ou revertidas antes de iniciar a atualização para manter a consistência da transação e reduzir o risco de falhas de atualização.
Execute uma atualização de versão principal planejada do MySQL 5.7 para o MySQL 8.0 usando o portal do Azure para servidores Burstable SKU
Executar uma atualização de versão principal para um Banco de Dados do Azure para a camada de computação SKU Burstable do MySQL requer um fluxo de trabalho especializado. Isso ocorre porque as atualizações de versão principal consomem muitos recursos, exigindo CPU e memória significativas. Instâncias de SKU Burstable sendo baseadas em crédito podem ter dificuldades sob esses requisitos, potencialmente fazendo com que o processo de atualização falhe. Portanto, ao atualizar um SKU Burstable, o sistema primeiro atualiza a camada de computação para um SKU de uso geral para garantir que recursos suficientes estejam disponíveis para a atualização.
Para executar uma atualização de versão principal para uma camada de computação SKU Burstable do Banco de Dados do Azure para MySQL usando o portal do Azure, siga estas etapas:
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.
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.
Validação de compatibilidade de esquema
Antes de prosseguir com a atualização, execute a ferramenta oficial de verificação de atualização do MySQL da Oracle para validar se seu esquema de banco de dados atual é compatível com o MySQL 8.0. Esta etapa é crucial para garantir um processo de atualização suave.
Decisão de pré-atualização
Antes de prosseguir com a atualização, você precisa escolher a camada de computação para a qual deseja atualizar para executar a atualização da versão principal. Por padrão, o sistema atualizará do Burstable SKU para o SKU de uso geral mais básico, mas você pode optar por atualizar para uma camada de computação mais alta, se necessário.
Nota
Enquanto o seu servidor operar na camada "Propósito Geral" durante a atualização, você só será cobrado pelos recursos reais de "Propósito Geral" usados durante esse período.
Decisão pós-atualização
Decida se deseja manter o SKU de uso geral ou reverter para o SKU Burstable após a atualização. Essa opção será solicitada durante as etapas iniciais de atualização.
O sistema atualizará automaticamente sua camada de computação de Burstable SKU para o suporte de SKU de uso geral selecionado para a atualização da versão principal.
Atualização da versão principal
Assim que a camada de computação for atualizada, o sistema iniciará o processo de atualização da versão principal. Monitore o progresso da atualização por meio do portal do Azure. O processo de atualização pode levar algum tempo, dependendo do tamanho e da atividade do seu banco de dados.
Nota
Se a atualização da versão principal falhar, a camada de computação não será revertida automaticamente para a SKU Burstable anterior. Isso é para permitir que os clientes continuem a atualização da versão principal sem a necessidade de executar a atualização da camada de computação novamente.
Reversão automática
Com base na sua decisão de pré-atualização, o sistema manterá o SKU de Uso Geral ou reverterá automaticamente para o Burstable SKU após a conclusão da atualização.
Nota
Se você optar por reverter automaticamente para Burstable SKU, o sistema reverterá para o B2S SKU por padrão.
Execute uma atualização de versão principal planejada do MySQL 5.7 para o MySQL 8.0 usando o portal do Azure para servidores SKU críticos de uso geral e de negócios
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
No portal do Azure, selecione seu banco de dados do Azure existente para o servidor flexível MySQL 5.7.
Crie uma réplica de leitura a partir do servidor primário.
Atualize sua réplica de leitura para a versão 8.0.
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.
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.
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.
Promova sua réplica de leitura para primária interrompendo a replicação.
Defina Server Parameter read_only como 0 (OFF) para começar a escrever no primário promovido.
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
- Saiba mais sobre como configurar a manutenção agendada para sua instância de servidor flexível do Banco de Dados do Azure para MySQL.
- Saiba o que há de novo no MySQL versão 8.0.