Mysqldump faz com que "Muitas conexões"

1

Um backup agendado usando mysqldump em um de nossos bancos de dados está causando Too many connections . O banco de dados é de tabelas InnoDB e MyISAM com tamanho de aproximadamente 500Mb. O Too many connections aparece por cerca de 2 a 3 minutos

Entendemos que o mysqldump bloqueia as tabelas e faz com que todas as outras consultas e conexões se acumulem e atolam o servidor mysql.

Precisamos de backups freqüentes e não podemos perder tempo de inatividade do servidor ou colocar sites em modo de manutenção enquanto o fazemos. Nossos sites são globais e o tráfego é alto o tempo todo, por isso é difícil encontrar um momento para backups.

Como podemos evitar o tempo de inatividade durante os backups?
Existe talvez uma maneira de usar o mysqldump de forma que ele não bloqueie todas as tabelas ao mesmo tempo?
Existe uma alternativa para fazer backup com o mysqldump? / p>     

por vbachev 13.06.2012 / 12:53

4 respostas

2

Primeiro, tente fazer backup de tabela por tabela ou DB por banco de dados - não bloqueie tudo.

Aumente as max_connections, tente usar o limite de conexão de outra forma: link

Não tenho certeza se vai exigir muito da memória para aumentar as max_connections.

Se você estiver usando o MyISAM - não há outra maneira de fazer backup. Com InnoDB ou XTraDB - sem problemas. link

    
por 13.06.2012 / 14:03
5

1) Configurar um segundo servidor, replicar seu banco de dados para ele, fazer backup de lá. Isso pode não ser uma boa solução se você tiver muitas mudanças em seu servidor mestre, já que a replicação no escravo é de encadeamento único.

2) Use o link

Ou, como sempre, consulte a documentação oficial que descreve outras alternativas: link

    
por 13.06.2012 / 13:04
0

Is there an alternative to backing up with mysqldump?

Como você planeja usá-los? Se você quiser backups incrementais rápidos e baratos, eu usaria apenas rsync (ou rsnapshot que usa rsync para manter várias cópias simultâneas sem ocupar muito espaço extra em disco) para fazer backup do /var/lib/mysql (ou onde quer que o arquivos de dados podem ser).

Eu estou assumindo que você não vai realmente usá-los para replicar / analisar ou interpretar, mas apenas no caso de seu (s) servidor (es) falharem você deseja fazer (essencialmente) uma restauração de disco completo . Isso também torna essa restauração incrivelmente rápida (mas rígida, você restaura tudo ou nada realmente), já que é uma operação de cópia padrão. Na melhor das hipóteses, você usaria isso sempre que quiser, com outro mecanismo de backup (digamos, um mysqldump em um horário fora do horário de pico) para garantir que você nunca ficará sem um dump analisável atualizado.

    
por 13.06.2012 / 13:13
0

Sua mistura de myisam e innodb-tables complica um pouco o assunto. Se você pode converter as tabelas myisam para innodb-tables, você pode executar o mysqldump dentro de uma transação. Dessa forma, você obteria um backup consistente sem a necessidade de um bloqueio de tabela / banco de dados.

Os problemas podem ser:

  • Desempenho: o Innodb pode ser mais lento que o myisam para sua aplicação
  • Recursos: se você usar recursos presentes apenas com myisam
por 17.06.2012 / 01:22