Chamar a atenção da gerência é uma coisa boa, se isso acontecer por razões positivas. Mas muitos administradores de banco de dados preferem ficar fora do radar. Como os DBAs são responsáveis por garantir que os bancos de dados da organização estejam funcionando sem problemas, quando as coisas estão dando certo, os DBAs geralmente ficam para trás e fazem suas coisas em paz. Mas quando algo dá errado, de repente você é o principal nome na lista de mais procurados da empresa.
Os DBAs têm muita responsabilidade dentro de uma organização, e há muitas maneiras pelas quais as coisas podem dar errado, mas seguindo algumas práticas recomendadas de monitoramento de banco de dados MySQL, você pode ter certeza de que é reconhecido pela gerência por sua inteligência afiada em vez do banco de dados paralisação que levou três dias para ser resolvida.
Faça verificações regulares de integridade do seu banco de dados
Para um DBA MySQL, agendar verificações de integridade regulares para seus bancos de dados é quase tão importante quanto agendá-las para você mesmo (Observação:considere isso seu lembrete para marcar uma consulta para o exame físico que você está adiando!).
Como as pessoas, nem todos os bancos de dados têm as mesmas necessidades de manutenção, portanto, as verificações de integridade devem ser adaptadas aos requisitos de função específicos do banco de dados. Por exemplo, bancos de dados de missão ou vida crítica precisam de verificações mais frequentes do que bancos de dados não críticos. O fracasso de um sistema de defesa antimísseis tem implicações muito mais duras do que o fracasso do programa de recompensas ao cliente frequente de uma livraria local.
Ao configurar suas verificações de integridade de rotina, há algumas áreas para focar que fornecerão informações que ajudarão você a determinar problemas contínuos do MySQL que precisam ser resolvidos.
Disponibilidade do MySQL
A disponibilidade é provavelmente a métrica mais importante para acompanhar. Se o banco de dados não estiver disponível, não há muito sentido em rastrear o restante dessas métricas até que seja corrigido. Execute -mysqladmin -h 192.168.1.95 -u root -p status para verificar a disponibilidade e, em seguida, inicie o diagnóstico se houver um problema.
Conexões com falha
O rastreamento do número de conexões com falha ao longo do tempo pode detectar atividades maliciosas, bem como erros menos sinistros no aplicativo, como permissões mal aplicadas e senhas incorretas.
Execute o comando SHOW GLOBAL STATUS LIKE ‘aborted_connects’; para determinar quantas tentativas de conexão abortadas existiram no banco de dados em um determinado período de tempo.
Registros de erros
O monitoramento de logs de erros é uma ótima maneira de ver quais erros ocorreram e se há algum padrão que possa indicar um problema recorrente maior que precisa ser resolvido.
Deadlocks no InnoDB
Os deadlocks do MySQL ocorrem quando diferentes transações mantêm um bloqueio em um recurso que a outra transação precisa. Os impasses resultam em processamento lento e tempos limite - e usuários irritados. Use SHOW ENGINE INNODB STATUS; para localizar impasses e resolvê-los.
Mudanças de configuração
Um declínio repentino no desempenho pode ser causado por uma dúzia de coisas diferentes. No entanto, você pode economizar algum tempo de solução de problemas revisando as alterações de configuração recentes e ajustando qualquer uma que esteja afetando negativamente o desempenho.
Registro de consultas lentas
As consultas lentas tornam o banco de dados mais lento porque usam CPU e memória excessivas. Revise o log de consultas lentas regularmente para determinar se alguma consulta está mostrando tempo de execução excessivo e, em seguida, solucione o problema para determinar e corrigir a causa raiz.
Mantenha visibilidade para entender a causa raiz dos problemas de desempenho do MySQL
A realização de verificações regulares de integridade em bancos de dados MySQL é essencial para manter a alta disponibilidade e minimizar problemas crônicos de desempenho, mas há algumas limitações quanto à utilidade das verificações de integridade para a solução de problemas gerais do sistema.
Como os problemas periódicos de desempenho podem não aparecer durante as verificações de integridade de rotina, é importante estabelecer uma visibilidade contínua em seu ambiente MySQL. Identificar e resolver rapidamente os problemas de desempenho significa menos tempo de inatividade e menos problemas de desempenho que afetam negativamente os usuários.
Uma das melhores maneiras de manter a visibilidade dos sistemas de banco de dados MySQL é definir alertas para eventos críticos para que você possa reagir rapidamente quando um limite for excedido e chegar à causa raiz do problema.
No mínimo, você deve definir limites de alerta para as seguintes fontes comuns de degradação de desempenho:
- Desvios significativos das métricas básicas de desempenho do MySQL
- Alto uso da CPU
- Latência da consulta
- Erros de consulta
- Limites de conexão
- Uso do pool de buffers
Identifique e resolva problemas de desempenho rapidamente
Você pode conseguir acompanhar o desempenho usando scripts internos em um ambiente pequeno e estático, mas os scripts não substituirão o monitoramento proativo necessário para acompanhar sistemas grandes e dinâmicos que estão em constante crescimento.
Em quase todas as situações, uma ferramenta de monitoramento de banco de dados comercial será sua melhor aposta para identificar e resolver problemas rapidamente antes que eles causem grandes problemas.
Existem muitas ferramentas de monitoramento de desempenho no mercado que oferecem uma ampla gama de recursos em muitos preços diferentes. Escolher a ferramenta certa para sua organização se resume a qual delas atende melhor às suas necessidades específicas a um preço que cabe no seu orçamento.
Embora não exista uma ferramenta de tamanho único, existem alguns recursos importantes de monitoramento de banco de dados que você deve procurar em qualquer ferramenta de monitoramento de desempenho que esteja considerando:
- Escalabilidade
- Monitoramento móvel
- IU intuitiva
- Acessível ao orçamento, mas rico em recursos
- Sem limite de conexão
- Análise de carga de trabalho multidimensional
- Análise da causa raiz do alarme
- Análise de bloqueio
- Alarmes inteligentes
- Acompanhamento de dados históricos