Move banco de dados MySQL enquanto a instância está online

2

Eu tenho uma instância MySQL contendo um número de bancos de dados, um dos quais é um banco de dados de archive (embora usando o mecanismo de armazenamento INNODB em vez de ARCHIVE) que não é consultado nem gravado em operação normal.

O sistema de arquivos de dados está sendo preenchido e eu gostaria de mover o diretório de dados do banco de dados para um sistema de arquivos diferente (e então ligá-lo novamente, obviamente). Se não houver instruções SQL tentando consultar ou atualizar os dados durante a mudança, posso fazer isso com segurança enquanto a instância do MySQL e os outros bancos de dados permanecem on-line e em uso?

Eu pretendo rsync o diretório do banco de dados para o novo sistema de arquivos, em seguida, renomeie o antigo no sistema de arquivos original para algo diferente e crie o novo symlink. lsof relata que o MySQL tem arquivos .ibd abertos, então presumivelmente teria que reabri-los.

    
por Mike Scott 27.02.2012 / 12:06

2 respostas

0

A melhor forma de apostar para a transferência seria configurar um gatilho para que, quando algo é criado no banco de dados antigo, ele seja imitado no novo.

Você pode então iniciar e alterar onde o cliente do banco de dados está apontando sem a preocupação de que os dados estejam desatualizados.

    
por 28.06.2013 / 11:49
0

Eu fiz isso, usando o mecanismo de armazenamento MYISAM, mas acho que com INNODB seria o mesmo:

mysql "hotcopy" e symlinking

    
por 03.03.2014 / 00:02