Introdução ao Banco de Dados do Azure para MySQL

Concluído

O Banco de Dados do Azure para MySQL pode ser implantado como um Servidor Flexível (Visualização) para hospedar o banco de dados MySQL de suas organizações no Azure. É um banco de dados como um serviço totalmente gerenciado que pode lidar com cargas de trabalho de missão crítica com desempenho previsível e escalabilidade dinâmica.

Como desenvolvedor de banco de dados com muitos anos de experiência em executar e gerenciar instalações locais do MySQL, você deseja explorar como o Banco de Dados do Azure para MySQL dá suporte e dimensiona seus recursos.

Nesta unidade, você explorará os preços, o suporte à versão, a replicação e as opções de dimensionamento do Banco de Dados do Azure para PostgreSQL.

Compreender os benefícios do Banco de Dados do Azure para MySQL

O Banco de Dados do Azure para MySQL é provisionado como um Banco de Dados do Azure para o servidor MySQL. O Banco de Dados do Azure para servidor MySQL é equivalente a um servidor MySQL local e fornece um ponto central para administrar vários bancos de dados MySQL.

Para criar um Banco de Dados do Azure para banco de dados MySQL, você deve primeiro provisionar um Banco de Dados do Azure para o MySQL Server. Um Banco de Dados do Azure para servidor MySQL é o pai de um ou vários bancos de dados e fornece o namespace para os bancos de dados. Se você excluir o servidor, excluirá todos os bancos de dados que ele contém.

O que o Banco de Dados do Azure para servidor MySQL fornece?

O serviço da Base de Dados do Azure para MySQL inclui elevada disponibilidade sem custo adicional e escalabilidade, conforme necessário. Só paga o que utilizar. As cópias de segurança automáticas são disponibilizadas com recuperação para um ponto anterior no tempo.

O servidor proporciona segurança de ligação para aplicar regras da firewall e, opcionalmente, exigir ligações SSL. Vários parâmetros de servidor permitem que você defina as configurações do servidor, como modos de bloqueio, número máximo de conexões e tempos limites. As alterações nos parâmetros marcados como Dinâmico entram em vigor imediatamente. Os parâmetros estáticos exigem uma reinicialização do servidor. Reinicie o servidor usando o botão Reiniciar na página Visão geral no portal.

O Banco de Dados do Azure para servidores MySQL inclui a funcionalidade de monitoramento para adicionar alertas e exibir métricas e logs.

Escalões de preço

Os níveis de preços permitem uma ampla gama de desempenho e capacidade, de um a 64 vCores e de 5 GB a 4 TB de armazenamento. O nível de preço básico foi projetado para cargas de trabalho de computação leves e suporta até dois vCores com 2 GB de memória por núcleo. O nível de preço de uso geral atenderá à maioria das cargas de trabalho de negócios e suporta de dois a 64 vCores com 5 GB de memória por núcleo. O nível de preço otimizado para memória suporta de dois a 32 vCores, tem 10 GB de memória por vCore e destina-se a cargas de trabalho de alto desempenho, incluindo análise de dados em tempo real. Embora você possa alternar entre níveis de preços de uso geral e otimizados para memória e alterar o número de vCores ou armazenamento em segundos, não é possível mover para ou do nível de preço básico.

Image showing the pricing tiers in the Azure portal

Há limites de conexão com base nos níveis de preços e no número de vCores. Consulte Limitações no Banco de Dados do Azure para MySQL para obter mais informações.

Controle de versão e atualizações

A Base de Dados do Azure para MySQL suporta as versões 5.6 (com a versão de correção de bugs 5.6.42), 5.7 (com a versão de correção de bugs 5.7.24) e 8.0 (com a versão de correção de bugs 8.0.15).

Nota

Um gateway redireciona conexões para instâncias do servidor. Os clientes MySQL exibirão a versão do gateway em vez da versão da instância do servidor. Para exibir a versão da instância do servidor, use SELECT VERSION(); comando.

As versões de correção de bugs são aplicadas automaticamente, mas as atualizações de versão não são suportadas. Para atualizar de uma versão para outra, você deve executar um dump e restaurar.

Escalabilidade

Como mencionado, você não pode alterar para ou do nível de preço básico. No entanto, você pode alterar o número de vCores, a geração de hardware, o volume de armazenamento e o período de retenção de backup. Você também pode alternar entre os níveis de preços de uso geral e otimizados para memória.

Observe que o armazenamento é apenas aumentado, não diminuído, e pode ser configurado para crescimento automático. Se o crescimento automático estiver habilitado, o armazenamento aumentará em 5 GB quando o armazenamento disponível for inferior a 1 GB ou 10% do volume de armazenamento (o que for maior) para servidores com menos de 100 GB de armazenamento. Para servidores com mais de 100 GB, o armazenamento aumenta 5% quando o armazenamento disponível é inferior a 5%.

Elevada disponibilidade

A Base de Dados do Azure para MySQL inclui um contrato de nível de serviço (SLA) com suporte financeiro para disponibilidade de 99,99%. Se houver uma falha de hardware ou implantação de serviço, um novo nó será criado automaticamente e o armazenamento será anexado a esse nó. O failover será concluído em dezenas de segundos.

Se uma instância do servidor do Banco de Dados do Azure para MySQL for dimensionada para cima ou para baixo, um processo semelhante ocorrerá com o armazenamento de dados sendo anexado à nova instância. Se ocorrer um failover, ocorrer um aumento ou redução de escala ou se houver qualquer interrupção no tráfego da Internet entre o cliente e o Azure, um erro de conectividade transitório pode acontecer no cliente. É importante ter lógica de repetição em aplicativos. No caso de um failover, um gateway direcionará o tráfego para o novo nó sem a necessidade de configuração no cliente.

Para obter informações sobre como lidar com erros transitórios, consulte Tratamento de erros de conectividade transitórios para o Banco de Dados do Azure para MySQL.

Replicar dados no Banco de Dados do Azure para MySQL

Replicação de dados

A Replicação Data-in usa a funcionalidade de replicação nativa do MySQL para replicar dados de um Servidor MySQL externo no Banco de Dados do Azure para MySQL. Isso é útil se você quiser provisionar um ambiente híbrido com uma instância MySQL local existente e uma réplica baseada no Azure. Este cenário fornece dados locais aos usuários em um sistema distribuído globalmente. Você também pode usar a replicação Data-in para replicar dados de uma máquina virtual ou serviço de banco de dados MySQL hospedado por outro provedor de nuvem.

Considerações sobre a replicação de dados

Aqui estão alguns fatores a serem considerados para a replicação de dados:

  • Os servidores mestre e de réplica devem ter a mesma versão e, pelo menos, a versão 5.6.
  • O mestre e a réplica devem usar o mecanismo InnoDB.
  • Cada tabela deve ter uma chave primária.
  • O Banco de Dados do Azure para servidor MySQL deve ter uma camada de preços de Uso Geral ou Memória Otimizada.
  • Você deve ter os direitos para criar usuários e configurar o log binário no servidor mestre.
  • O banco de dados do sistema mysql não é replicado. As contas e permissões não são replicadas do servidor mestre para a réplica e devem ser criadas manualmente.

Etapas para configurar a replicação de dados

Há várias etapas para configurar a replicação de dados:

  • Crie um Banco de Dados do Azure para o MySQL Server a ser usado como um host para a réplica e crie quaisquer contas de usuário e privilégios necessários.
  • Configure a replicação no servidor mestre.
  • Despeje e restaure o servidor mestre.
  • Use os procedimentos armazenados da Replicação Data-in para configurar o servidor de destino.

Consulte Como configurar o Banco de Dados do Azure para a Replicação de Dados MySQL para obter mais informações.

Réplicas de leitura

As réplicas de leitura usam a tecnologia de replicação MySQL nativa para criar instâncias de réplica assíncronas do Banco de Dados do Azure para servidores MySQL. Os servidores de réplica são somente leitura e pode haver até cinco réplicas para cada mestre. Para cada réplica de leitura, o custo mensal é cobrado com base nos vCores e no armazenamento usados.

Usos para réplicas de leitura

Servidores de relatórios

Ao criar uma réplica somente leitura do servidor mestre, você direciona todas as cargas de trabalho analíticas, de BI e de relatórios para a réplica. Isso remove a carga de trabalho do servidor mestre e reduz os conflitos enquanto o servidor mestre executa suas cargas de trabalho de gravação intensiva.

Aproximar os dados dos utilizadores

Você cria réplicas entre regiões para aproximar os dados dos usuários e melhorar suas velocidades de leitura. As réplicas entre regiões podem estar em uma região de réplica universal ou na região emparelhada do servidor mestre. As regiões disponíveis são listadas quando você cria um servidor de réplica.

Image showing replica regions

Configurar réplicas de leitura

Configurar uma réplica de leitura no portal do Azure:

Image showing replication setting in the Azure portal

Em seguida, especifique o nome e a região da réplica:

Image showing replication in the Azure portal

Nota

As réplicas de leitura não estão disponíveis no nível de preço básico.

Para obter mais informações sobre réplicas de leitura, consulte Réplicas de leitura no Banco de Dados do Azure para MySQL.

Gestão e monitorização

O Banco de Dados do Azure para MySQL tem uma ampla variedade de ferramentas de monitoramento para ajudá-lo a otimizar seu servidor, ser notificado sobre eventos e responder proativamente às métricas. Você também pode usar ferramentas familiares de administração do MySQL, como versões recentes do MySQL Workbench, PHPMyAdmin e Navicat, para gerenciar e monitorar o Banco de Dados do Azure para servidores MySQL:

Image showing the MySQL Workbench tool connected to Azure Database for MySQL

Ferramentas do Azure para monitorar o Banco de Dados do Azure para MySQL

As ferramentas disponíveis no portal do Azure para gerenciar e monitorar o Banco de Dados do Azure para MySQL incluem o seguinte:

  • Métricas do Azure. As métricas fornecem dados numéricos a cada minuto e são armazenadas por 30 dias. Há uma ampla variedade de métricas que você usa para monitorar seu servidor — você também pode configurar alertas para responder a métricas.

    Image showing Azure metrics

    Consulte Plataforma de dados do Azure Monitor para obter mais informações.

  • Logs de servidor e auditoria. Você habilita os logs do servidor para monitorar consultas lentas e fornece log de auditoria para o servidor. Os logs do servidor estão disponíveis fora do Banco de Dados SQL para MySQL por meio dos Logs de Diagnóstico do Azure.

    Image showing Azure server logs

    Consulte Logs de consulta lenta no Banco de Dados do Azure para MySQL para obter mais informações. Os logs de auditoria são um recurso de visualização para fornecer log de auditoria para rastrear a atividade do banco de dados. Para ativar o log de auditoria, defina o parâmetro audit_log_enabled como ON. Para obter mais informações sobre logs de auditoria, consulte Logs de auditoria no Banco de Dados do Azure para MySQL.

  • Arquivo de Consultas. Isso é usado para acompanhar o desempenho do seu servidor ao longo do tempo e fornecer informações de solução de problemas. O Repositório de Consultas retém o histórico de consultas e as estatísticas de tempo de execução para que você possa identificar consultas com uso intensivo de recursos ou de longa execução. Para habilitar o Repositório de Consultas, defina o parâmetro query_store_capture_mode server como ALL:Image showing Query Store capture mode

    Para exibir dados de armazenamento de consultas sobre consultas, execute a seguinte consulta:

    SELECT * FROM mysql.query_store;
    

    Para exibir dados sobre estatísticas de espera, execute a seguinte consulta:

    SELECT * FROM mysql.query_store_wait_stats;
    

    Nota

    O Repositório de Consultas é um recurso de visualização e não está disponível no nível de preço básico.

    Para obter mais informações sobre o Repositório de Consultas, consulte Monitorar o desempenho do Banco de Dados do Azure para MySQL com o Repositório de Consultas.

  • Query Performance Insight. O Query Performance Insight exibe dados do Repositório de Consultas como visualizações para permitir que você identifique consultas que afetam o desempenho. O Query Performance Insight está na seção Desempenho Inteligente do seu Banco de Dados do Azure para MySQL, no portal do Azure.

    Nota

    O Query Performance Insight é um recurso de visualização e não está disponível na camada de preço básica.

    Para obter mais informações sobre o Query Performance Insight, consulte Query Performance Insight in Azure Database for MySQL.

  • Recomendações de Desempenho. As Recomendações de Desempenho usam dados do Repositório de Consultas para analisar cargas de trabalho e combinam isso com as características do banco de dados para sugerir novos índices para melhorar o desempenho. As Recomendações de Desempenho estão na seção Desempenho Inteligente do Banco de Dados do Azure para MySQL no portal do Azure.

    Nota

    As Recomendações de Desempenho são uma funcionalidade de pré-visualização e não estão disponíveis no escalão de preços básico.

    Para obter mais informações sobre recomendações de desempenho, consulte Recomendações de desempenho no Banco de Dados do Azure para MySQL.

Conectividade do cliente

Drivers MySQL

A Base de Dados do Azure para MySQL utiliza a edição da comunidade MySQL e é compatível com uma vasta gama de controladores — suporta uma variedade de linguagens de programação. As cadeias de conexão são fornecidas no portal do Azure:

Image showing connection strings

Para obter mais informações sobre drivers MySQL, consulte Drivers MySQL e ferramentas de gerenciamento compatíveis com o Banco de Dados do Azure para MySQL

Configurar a firewall

A maneira mais simples de configurar o firewall é usar as configurações de Segurança de Conexão para seu serviço no portal do Azure. Adicione uma regra para cada intervalo de endereços IP do cliente. Você também pode usar esta página para impor conexões SSL ao seu serviço.

Image showing the firewall configuration for Azure Database for PostgreSQL

Clique em Adicionar IP do cliente na barra de ferramentas para adicionar o endereço IP do seu computador desktop.

Se você configurou réplicas somente leitura, deverá adicionar uma regra de firewall a cada uma delas para torná-las acessíveis aos clientes.

Erros de ligação transitórios

Quando você se conecta a um banco de dados pela Internet, erros de conexão transitórios são inevitáveis e devem ser tratados por aplicativos cliente.

Para obter informações sobre erros de conectividade transitórios, consulte Tratamento de erros de conectividade transitórios para o Banco de Dados do Azure para MySQL.

Recursos do MySQL que não são suportados no Banco de Dados do Azure para MySQL

Embora a maioria dos recursos do MySQL esteja disponível no Banco de Dados do Azure para MySQL, alguns não são suportados. Você deve revisar esses recursos para garantir que você atenue quaisquer problemas potenciais ao migrar.

Motores de armazenamento

O Banco de Dados do Azure para MySQL dá suporte aos mecanismos de armazenamento InnoDB e MEMORY. InnoDB é o mecanismo de armazenamento padrão para MySQL, fornecendo um equilíbrio entre alto desempenho e alta confiabilidade. Todas as novas tabelas no MySQL usarão o mecanismo de armazenamento InnoDB, a menos que especificado de outra forma.

Para obter mais informações sobre o mecanismo de armazenamento InnoDB, consulte Introdução ao InnoDB.

Para armazenar dados na memória, o mecanismo de armazenamento MEMORY está disponível. Esses dados correm o risco de qualquer tipo de falha ou interrupção — o mecanismo de armazenamento MEMORY só deve ser usado como um armazenamento temporário de alto desempenho.

Para obter mais informações sobre o mecanismo de armazenamento MEMORY, consulteO mecanismo de armazenamento MEMORY.

Os mecanismos de armazenamento MyISAM, BLACKHOLE, ARCHIVE e FEDERATED não são suportados no Banco de Dados do Azure para MySQL. Os dados MyISAM devem ser convertidos para o mecanismo de armazenamento InnoDB. Os mecanismos de armazenamento BLACKHOLE, ARCHIVE e FEDERATED têm funções especializadas e não são usados como armazenamentos de dados típicos.

Privilégios e funções

A função DBA não é exposta porque muitas configurações e parâmetros do servidor podem quebrar as regras de transação e degradar o desempenho. Por razões semelhantes, o privilégio SUPER é restrito, assim como a cláusula DEFINER que usa o privilégio SUPER.

Restauro

Dois recursos de restauração funcionam de forma diferente no Banco de Dados do Azure para MySQL:

  • A restauração point-in-time cria um novo servidor com uma configuração idêntica ao servidor no qual ela se baseia.
  • Não é possível restaurar um servidor excluído.