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 (versão prévia) para hospedar o banco de dados MySQL de suas organizações no Azure. Trata-se de um banco de dados como um serviço totalmente gerenciado que pode manipular cargas de trabalho críticas com desempenho previsível e escalabilidade dinâmica.

Como um desenvolvedor de banco de dados com muitos anos de experiência na execução e no gerenciamento de 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á as opções de preço, suporte de versão, replicação e dimensionamento do Banco de Dados do Azure para PostgreSQL.

Entenderá os benefícios do Banco de Dados do Azure para MySQL

O Banco de Dados do Azure para MySQL é provisionado como um servidor do Banco de Dados do Azure para MySQL. O servidor do Banco de Dados do Azure para 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 MySQL, você deve primeiro provisionar um servidor do Banco de Dados do Azure para MySQL. Um servidor de Banco de Dados do Azure para 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 contidos nele.

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

O serviço do Banco de Dados do Azure para MySQL inclui alta disponibilidade sem custo adicional e escalabilidade conforme o necessário. Você paga apenas pelo que usa. É possível fazer backups automáticos com restauração pontual.

O servidor fornece segurança de conexão para impor regras de firewall e, opcionalmente, exigir conexões SSL. Inúmeros parâmetros de servidor permitem definir as configurações do servidor, como modos de bloqueio, número máximo de conexões e tempos limite. Alterações nos parâmetros marcados como Dinâmicos 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.

Os servidores do Banco de Dados do Azure para MySQL oferecem recursos de monitoramento para adicionar alertas e ver métricas e logs.

Tipos de preço

Os tipos de preço permitem uma ampla gama de desempenho e capacidade de um a 64 vCores e de 5 GB a 4 TB de armazenamento. O tipo de preço básico foi projetado para cargas de trabalho de computação leve e dá suporte a até dois vCores com 2 GB de memória por núcleo. O tipo de preço de uso geral atende à maioria das cargas de trabalho de negócios e dá suporte de dois a 64 vCores com 5 GB de memória por núcleo. O tipo de preço com otimização de memória dá suporte a 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 os tipos de preço de uso geral e com otimização de memória e alterar o número de vCores ou armazenamento em segundos, não é possível mover de ou para o tipo de preço básico.

Image showing the pricing tiers in the Azure portal

Há limites de conexão com base nos tipos de preço e na quantidade de vCores. Confira mais informações em Limitações no Banco de Dados do Azure para MySQL.

Controles de versão e atualizações

O Banco de Dados do Azure para MySQL dá suporte à versão 5.6 (com versão de correção de bug 5.6.42), 5.7 (com versão de correção de bug 5.7.24) e 8.0 (com versão de correção de bug 8.0.15).

Observação

Um gateway redireciona as 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 o comando SELECT VERSION();.

As versões de correção de bug são aplicadas automaticamente, mas não há suporte para atualizações de versão. Para atualizar de uma versão para outra, você deve executar um despejo e uma restauração.

Escalabilidade

Como mencionado, não é possível alterar de ou para o tipo 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 tipos de preço de uso geral e otimizado para memória.

Observe que o armazenamento só aumenta, nunca reduz, e pode ser definido 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 em 5% quando o armazenamento disponível é inferior a 5%.

Alta disponibilidade

O Banco de Dados do Azure para MySQL inclui um SLA (contrato de nível de serviço) 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 de servidor de Banco de Dados do Azure para MySQL for dimensionada ou reduzida verticalmente, um processo semelhante ocorrerá com o armazenamento de dados que está sendo anexado à nova instância. Se ocorrer um failover, uma escala vertical ou horizontal ou houver qualquer interrupção no tráfego de internet entre o cliente e o Azure, um erro de conectividade transitório poderá ocorrer no cliente. É importante ter uma lógica de repetição em aplicativos. No caso de um failover, um gateway direcionará o tráfego para o novo nó sem ser necessária nenhuma configuração no cliente.

Confira mais informações sobre como lidar com erros transitórios em 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 de Dados usa a função de replicação nativa do MySQL para replicar dados de um servidor MySQL externo para o Banco de Dados do Azure para MySQL. Isso será útil se você quiser provisionar um ambiente híbrido com uma instância do MySQL local existente e uma réplica baseada no Azure. Esse cenário fornece dados locais para usuários em um sistema distribuído globalmente. Você também pode usar a Replicação de Dados para replicar dados de uma máquina virtual ou serviço de banco de dados MySQL hospedado por outro provedor de nuvem.

Considerações a respeito da Replicação de Dados

Estes são alguns fatores a ser 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.
  • Todas as tabelas devem ter uma chave primária.
  • O servidor do Banco de Dados do Azure para MySQL deve ter um tipo de preço de Uso Geral ou Otimizado para Memória.
  • Você deve ter os direitos para criar usuários e configurar o logon 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:

  • Criar um servidor de Banco de Dados do Azure para MySQL a ser usado como host para a réplica e criar quaisquer contas de usuário e privilégios necessários.
  • Configurar a replicação no servidor mestre.
  • Despejar e restaurar o servidor principal.
  • Usar os procedimentos armazenados de Replicação de Dados para configurar o servidor de destino.

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

Réplicas de leitura

As réplicas de leitura usam a tecnologia nativa de replicação do MySQL para criar instâncias de réplicas assíncronas dos servidores do Banco de Dados do Azure para 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

Com a criação de uma réplica somente leitura do servidor mestre, você direciona todas as cargas de trabalho analíticas, de relatório e de BI 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 com uso intensivo de gravação.

Levar os dados para perto dos usuários

As réplicas entre regiões são criadas para levar os dados para perto dos usuários e melhorar as velocidades de leitura deles. 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

Configure a 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

Observação

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

Confira mais informações sobre réplicas de leitura em Réplicas de leitura no Banco de Dados do Azure para MySQL.

Gerenciamento e monitoramento

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

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

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

Dentre as ferramentas disponíveis no portal do Azure para gerenciar e monitorar o Banco de Dados do Azure para MySQL, destacamos:

  • Métricas do Azure. As métricas fornecem dados numéricos a cada minuto e são armazenadas por 30 dias. Há uma ampla gama de métricas que você usa para monitorar o servidor. Também é possível configurar alertas para responder às métricas.

    Image showing Azure metrics

    Confira mais informações em Plataforma de dados do Azure Monitor.

  • Logs de servidor e auditoria. Os logs do servidor são habilitados para monitorar as consultas lentas e fornecer 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

    Confira mais informações em Logs de consulta lenta no Banco de Dados do Azure para MySQL. Os logs de auditoria são uma versão prévia do recurso para fornecer logs de auditoria para o acompanhamento da atividade do banco de dados. Para ativar o log de auditoria, defina o parâmetro audit_log_enabled como ATIVADO. Confira mais informações sobre logs de auditoria em Logs de auditoria no Banco de Dados do Azure para MySQL.

  • Repositório de Consultas. Usado para acompanhar o desempenho do 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 consulta e as estatísticas em tempo de execução para que você possa identificar as consultas em execução prolongada ou que exigem muito dos recursos. Para habilitar o Repositório de Consultas, defina o parâmetro de servidor query_store_capture_mode como TODOS: Image showing Query Store capture mode

    Para exibir os dados do Repositório de Consultas sobre as consultas, execute a seguinte consulta:

    SELECT * FROM mysql.query_store;
    

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

    SELECT * FROM mysql.query_store_wait_stats;
    

    Observação

    O Repositório de Consultas é uma versão prévia do recurso e não está disponível no tipo de preço básico.

    Confira mais informações sobre o Repositório de Consultas em Monitorar o desempenho do Banco de Dados do Azure para MySQL usando o Repositório de Consultas.

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

    Observação

    A Análise de Desempenho de Consultas é uma versão prévia do recurso e não está disponível no tipo de preço básico.

    Confira mais informações sobre a Análise de Desempenho de Consultas em Análise de Desempenho de Consultas no Banco de Dados do Azure para 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 a fim de 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.

    Observação

    As Recomendações de Desempenho são uma versão prévia do recurso e não estão disponíveis no tipo de preço básico.

    Confira mais informações sobre as Recomendações de Desempenho em Recomendações de Desempenho no Banco de Dados do Azure para MySQL.

Conectividade de cliente

Drivers MySQL

O Banco de Dados do Azure para MySQL usa o MySQL Community Edition e é compatível com uma ampla variedade de drivers, além de dar suporte a uma variedade de linguagens de programação. As cadeias de conexão são fornecidas no portal do Azure:

Image showing connection strings

Confira mais informações sobre os drivers do MySQL em Drivers do MySQL e ferramentas de gerenciamento compatíveis com o Banco de Dados do Azure para MySQL

Configurar o 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 essa 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 computador desktop.

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

Erros transitórios de conexão

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

Confira mais informações sobre erros de conectividade transitória em Tratamento de erros de conectividade transitória para o Banco de Dados do Azure para MySQL.

Recursos do MySQL que não têm suporte 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 têm suporte. Examine esses recursos para garantir a minimização de quaisquer possíveis problemas durante a migração.

Mecanismos 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.

Confira mais informações sobre o mecanismo de armazenamento InnoDB em Introdução ao InnoDB.

O mecanismo de armazenamento MEMORY está disponível para armazenar dados na memória. Esses dados estão em risco de qualquer forma de falha ou interrupção – o mecanismo de armazenamento MEMORY só deve ser usado como armazenamento temporário e de alto desempenho.

Confira mais informações sobre o mecanismo de armazenamento MEMORY emMecanismo de armazenamento MEMORY.

Os mecanismos de armazenamento MyISAM, BLACKHOLE, ARCHIVE e FEDERATED não têm suporte no Banco de Dados do Azure para MySQL. Os dados do MyISAM devem ser convertidos para o mecanismo de armazenamento InnoDB. Os mecanismos de armazenamento BLACKHOLE, ARCHIVE e FEDERATED têm funções de especialista 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 interromper as regras de transação e degradar o desempenho. Por motivos semelhantes, o privilégio SUPER é restrito, assim como a cláusula DEFINER, que usa o privilégio SUPER.

Restaurar

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

  • A restauração pontual cria um novo servidor com uma configuração idêntica ao servidor no qual ele se baseia.
  • Você não pode restaurar um servidor excluído.