Manutenção adequada do banco de dados MySQL

8

Espero que não seja uma pergunta muito ampla. Estou certo de que será capaz de me ajudar e a qualquer futuro dba noobs que tropeçar nele.

Sou um administrador de sistemas que foi incluído no DBA (porque ajudei o CEO com a perspectiva dele, para que eu possa obviamente gerenciar nossos bancos de dados!). Não é um servidor de banco de dados tão grande ou ocupado ... um mysqldump tem cerca de 6 GB de tamanho e levamos 5 anos para obtê-lo desse tamanho. Munin relata que temos uma média de 40 a 60 consultas por segundo nos horários de pico.

Meu chefe pagou que eu fizesse o curso de administração de sistemas da Oracle University, mas, depois de passar por ele, ele simplesmente explica as diferentes partes do servidor mysql, o que as coisas fazem e como fazem. Mas não é tão profundo e você definitivamente não sai desse curso como um DBA.

Assim como o DBA atual, o que devo fazer para garantir que tudo esteja funcionando perfeitamente? Existem tarefas de manutenção diária que posso executar? Há certas métricas que devo verificar? Ou, de outra forma, como DBAs, o que você faz diariamente para manter tudo em boa forma?

Se isso ajudar a adaptar a resposta um pouco, aqui estão alguns detalhes. Temos 171 mesas, todas, exceto três, são innodb, as outras são myisam. Temos a replicação mestre / escravo configurada entre nosso datacenter primário e nosso site de recuperação de desastre, usando RBR. A versão é 5.5.28.

O que eu posso fazer?

Safado
fonte

Respostas:

10

Primeiras coisas primeiro. Verifique se você desenvolveu e documentou uma estratégia de recuperação de desastre (DR). Passe algum tempo pensando em maneiras pelas quais as coisas podem dar errado, como se recuperar delas e testando-as para ter uma idéia de quanto tempo levará, especialmente ao restaurar a partir de um backup. Algumas idéias gerais:

  • O mysql travou, mas o servidor está bom: corrija o erro e inicie o mysql.
  • O MySQL deve ser restaurado a partir de um backup: restaure a partir de um backup e inicie o mysql <- teste isso antes que se torne algo que você deve fazer em caso de emergência.
  • O servidor morreu e precisa ser substituído: instale um servidor de substituição e restaure-o a partir de um backup.

Depois de ter uma estratégia de recuperação de desastres e um método desenvolvido para testar seus backups, você poderá passar para tarefas mais periódicas:

  • teste seu processo de restauração regularmente. Isso garante familiaridade caso seja necessário.
  • garantir índices adequados. Se você estiver usando o servidor percona, poderá obter estatísticas sobre quais índices não são usados ​​após um determinado período (aproximadamente um mês)
  • revisão de consulta lenta. Habilite o log de consultas lento com um tempo de consulta longo de 1 segundo ou mais e use pt-query-digest para revisá-los semanalmente / mensalmente.
  • leia http://www.mysqlperformanceblog.com/ e blogs em http://planet.mysql.com/ .. em um banco de dados tão pequeno, você raramente terá muitos dos problemas de desempenho de interesse. Assim, você terá tempo de sobra para ler sobre questões interessantes e como resolvê-las.
Derek Downey
fonte
Obrigado pelos links e sugestões. Isso me dá um bom ponto de partida.
Safado
1

E quanto ao backup para dados e programas? Revise o hardware e o armazenamento em que o MySQL está instalado Revise todos os logs diariamente ou em tempo hábil Espaço em disco, mesmo com extensões automáticas - ele deve ser observado Verifique se uma pessoa está realizando o trabalho de DBA (organização) Segurança - revise a política para tipos de dados e quem está acessando Mantenha seu banco de dados atualizado - dentro do razoável Prepare-se para diferentes desastres e se recupere desses desastres

/ Mark J. Richards

Mark J. Richards
fonte