Eu tenho 3 servidores, digamos A,B e C. Todos têm os dados equivalentes (mesmos dados) . Agora o que eu quero é fazer de A o mestre e B,C os escravos.
Mas o cenário é que eu só quero replicar algumas das tabelas de um único banco de dados do mestre (servidor A ).
Todos os servidores estão rodando com os mesmos dados. Portanto, não há necessidade de tirar o dump do mestre e restaurar nos escravos.
Apenas para definir a replicação de algumas tabelas de um único banco de dados .
Há algum mal em fazer isso? E que passo(s) devo seguir para conseguir isso?
Defina uma configuração master<>slave e, em seguida, use o parâmetro config:
... para especificar as tabelas que você deseja replicar. Use um caractere curinga no nome_da_tabela (se possível) ou use várias
replicate-do-table=
linhas.Como Phil menciona, a
replicate-do-table
opção é o que você deseja para atingir seu objetivo. Apenas lançando algumas ressalvas:A sobrecarga pode ser prejudicial em altas cargas de gravação. Dê uma olhada na lógica para determinar se uma linha no log binário deve ser executada no escravo.
Supostamente, o formato binlog do mestre (linha ou instrução) não afeta as regras de filtragem da tabela. Porém, pelo que entendi (não testei) se tiver alguma rotina armazenada que afete a tabela, a
replicate-do-table
regra não se aplica:Portanto, se você estiver usando qualquer procedimento armazenado para modificar tabelas, poderá ter alguns problemas com a falha da replicação.