Clonando uma VM para adicionar um novo MySQL Slave

2

Eu estou no processo de adicionar um novo escravo a uma configuração MySQL replicada. Estou propondo o seguinte processo:

  1. clona um dos nós em uma nova VM
  2. inicie sem rede
  3. para o mysql
  4. mude o id do servidor em my.cnf para um novo id
  5. reinicie o mysql e a rede

Isso deve funcionar corretamente? Ou o MySQL ficará confuso porque costumava ser um id de servidor diferente?

SO: Ubuntu 10.10

Plataforma de VM: VMWare 5

MySQL: Versão do servidor: 5.1.49-1ubuntu8.1-log (Ubuntu)

    
por Ben Holness 28.09.2012 / 18:12

1 resposta

2

Não estou familiarizado com o VMWare, mas estou familiarizado com esse processo em volumes lógicos arbitrários. Primeiro, você precisa clonar a VM de modo que a captura instantânea da VM copie o servidor em um estado consistente (como um LV Snap). Você também precisa ser capaz de pegar as coordenadas de replicação atuais do escravo ao iniciar sua cópia. Por causa disso, o seguinte mecanismo seria necessário:

  1. TABELAS DE FLUSH COM BLOQUEIO DE LEITURA;
  2. MOSTRAR STATUS DO ESCRAVO uma. Recuperar Exec_Master_Log_Pos e Relay_Master_Log_File desta saída, estas são suas coordenadas para usar ao configurar a replicação no novo escravo
  3. - Comece a criar instantâneo
  4. DESBLOQUEAR TABELAS;

Quando isso for feito e o novo servidor tiver sido criado a partir da imagem, você precisará executar uma instrução CHANGE no escravo para atualizar essas coordenadas do log de log:

MUDANÇA MASTER PARA MASTER_LOG_FILE="$ {Relay_Master_Log_File de 2a}", MASTER_LOG_POS = $ {Exec_Master_Log_Pos de 2a};

Este método funcionaria com um snapshot de LV por exemplo. Algumas ferramentas como o hollandbackup suportam este estilo de cópia do LVM: link

    
por 29.09.2012 / 22:45