Como tratar a restauração de ponto no tempo sem binlogs / Como dividir o banco de dados

3

Pensei nos 3 dias já e perguntei no IRC, mas também quero consultar os seus conhecimentos. Basicamente, trata-se de um site de alto tráfego que usa o Drupal (não me faça começar, não tenho escolha nesse assunto). O Drupal faz algumas coisas não tão inteligentes como: a) armazenar o cache no banco de dados eb) armazenar sessões no banco de dados. O primeiro problema que resolvi com um módulo. O segundo problema que não consigo resolver porque a tabela de sessão é muito estranha e o único autor do módulo de proxy de sessão disse que irá quebrar outros módulos por causa da tabela de sessão do Drupals / incompatibilidade padrão (o que foi feito não posso mais usá-la) . O maior problema é que, se os binlogs estiverem habilitados, as atualizações de sessão na tabela do banco de dados geram um alto I / O e cerca de 100 MB / 40 segundos de logs binários. Eu eliminei 200gb de binlogs nos últimos 2 dias. O problema é que as consultas de atualização de sessão são enormes, agora são 3.5k req / s e isso causa 60mbit / s de sql queries do php para o mysq, com Redis seus 5mbit / s. A única opção seria desabilitar os log binários. Além disso, o DB vai estar em um cluster Galera em breve. 2 perguntas

a) Como trabalhar com restauração pontual sem log binário? Vários backups ativos ao vivo durante o dia?

b) Eu suponho que é inteligente separar as tabelas de contas de usuários do resto do banco de dados e colocá-las com binlogs porque elas certamente precisam de uma restauração pontual. Mas isso exigiria um cluster separado?

Obrigado pela ajuda antecipada

ps: Eu não posso usar o binlog-ignore-db porque o Galera ignora os filtros do log bin! Eu teria que dividir os bancos de dados em instâncias separadas, mas não tenho certeza se quero executar várias instâncias do mysql ...

    
por pdanjou 18.02.2016 / 09:40

0 respostas