É possível descartar bancos de dados InnoDB do MariaDB (MySQL) excluindo diretórios?

1

Estou trabalhando no caminho mais rápido para criar um novo servidor slave, que exigirá apenas alguns de nossos bancos de dados. O plano básico é:

  • Parar escravo existente
  • Tire o instantâneo do LVM e reinicie o escravo (para que ele possa voltar a manipular o tráfego)
  • Montar instantâneo
  • Excluir diretórios de bancos de dados desnecessários na captura instantânea
  • Faça um tarball de todo o diretório mysql, excluindo os diretórios dos bancos de dados que eu não quero transferir , e transfiro para o novo escravo
  • Troque o diretório mysql no novo escravo. Inicie o mysql lá e atualize a tabela do usuário e as concessões, depois libere os privilégios.
  • Atualize as permissões no mestre para permitir ao usuário de replicação o novo IP do escravo.

O que não tenho certeza é se apenas a exclusão dos diretórios do banco de dados funcionará ou se ocorrerei problemas com os metadados não correspondentes. Se necessário eu poderia montar o instantâneo na localização real do mysql e iniciar uma sessão CLI para descartar os bancos de dados da maneira correta, mas é mais esforço e levará mais tempo, além de colocar mais carga no servidor de origem, portanto, se eu puder excluir os diretórios que seriam ideais. Talvez apagar os diretórios e limpar as tabelas information_schema apropriadas depois, no novo escravo?

O objetivo de tudo isso é que eu estou planejando ser capaz de reagir rapidamente no caso de um pico de tráfego imprevisto, então as prioridades são a velocidade de rotação do novo escravo, bem como a minimização de carga e tempo de inatividade adicionais o escravo existente, uma vez que estará sob alta carga nesta situação.

    
por Nathan Stretch 06.03.2018 / 02:39

1 resposta

1

Não é uma boa ideia. O InnoDB mantém informações sobre tabelas, campos no dicionário que reside em ibdata1. Se você excluir o diretório do banco de dados, o banco de dados não ficará visível para os clientes. Mas haverá efeitos colaterais. Por exemplo, você não poderá criar tabelas com o mesmo nome.

    
por 06.03.2018 / 06:22