O que eu tenho :
- uma máquina Windows com uma instância do MySQL 5.6 Server.
- dois bancos de dados chamados test e test2.
Test
banco de dados tem uma tabela chamadaactivity
com colunasid
eclass
O que eu preciso :
- replicação de
test.activity
tabela paratest2
banco de dados com uma condição queTest.activity.class = 'B'
.
Eu sei como replicar em um servidor diferente. Mas não para o mesmo servidor em bancos de dados diferentes. Verifiquei este link , mas não fornece informações suficientes.
Se eu entendi corretamente sua necessidade, você pode ter 2 instâncias do MySQL em um único servidor (SO), então você pode configurar uma delas como mestre e outra como escravo. Você deve criar um my.conf diferente, nós o chamamos de my1.conf e my2.conf que cada um deve ser diferente no número da porta e no caminho do soquete e no caminho do erro de log e alguns outros parâmetros. Com essa abordagem, você executará 2 daemon MySQL com configurações diferentes. Para obter o documento completo, acesse https://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html .
Porque está no mesmo servidor, por que você não usa um gatilho para isso?
Se você deseja apenas replicar dados, pode adicionar um gatilho na atualização ou na inserção ou em ambos, conforme necessário. Desta forma, você pode usar sua condição facilmente. A replicação mestre/escravo seria melhor para servidores diferentes.
Você pode procurar aqui exemplos de Trigger mysql. E aqui está uma amostra para o seu caso.
Isso não seria uma situação normal! Você não pode alterar o banco de dados durante a replicação e o mestre/escravo não pode ter os mesmos IDs de servidor. Eu recomendo que, se você precisar fazer isso, configure alguns gatilhos no primeiro banco de dados para replicar os comandos de inserção/atualização no segundo.
Experimente o mysql sandbox, provavelmente resolverá seu problema ( http://mysqlsandbox.net/ )
Porque:
A replicação nativa não ajuda e, neste caso, é melhor deixar os dois bancos de dados no mesmo servidor e apenas instalar o gatilho para INSER/UPDATE/DELETE no banco de dados mestre, que verificará as condições e fará alterações diretas no segundo banco de dados.
Esta é a maneira mais simples. Existem muitos outros possíveis.