Não, uma réplica que não seja uma réplica do original não é uma réplica.
Existe uma maneira de definir a replicação do MySQL para adicionar novas linhas e excluir as linhas antigas? por exemplo eu tenho tabela no mestre MySQL que remonta a cerca de 5 anos. Gostaria que a replicação se mantivesse atualizada apenas com os últimos 30 dias. Qualquer coisa após 30 dias será excluída da replicação. Como eu poderia conseguir isso?
Não, uma réplica que não seja uma réplica do original não é uma réplica.
Você não pode chegar aonde deseja ir por esse caminho. Seu primeiro problema é que o MySQL precisa de uma maneira de determinar quais dados devem ser mantidos e o que deve ser excluído. Se você não tiver dependências entre tabelas, poderá fazê-lo com um registro de data e hora ou um campo de data em cada tabela. Nesse caso, basta executar uma consulta simples em cada tabela.
Existe a possibilidade de você fazer isso por meio dos logs, mas isso seria complicado e propenso a erros.
Embora você não possa fazer isso com suporte nativo ao MySQL, como muitos outros apontaram, na maioria dos casos isso pode ser feito facilmente com um script. No entanto, a facilidade dependerá da complexidade do seu esquema.
Veja um exemplo de uma consulta que exclui de uma tabela que possui um campo de carimbo de data / hora usando funções de data e hora ...
delete from table where DATE_ADD( DATE_FORMAT( table.timestamp,'%Y-%m-%d %T'), INTERVAL 4 HOUR) < NOW()
Depois de configurar a replicação e obter os bancos de dados idênticos, emita 'stop slave' e exclua os dados antigos. Não reaparecerá a menos que o mestre faça algo envolvendo essas linhas. Então 'comece escravo'.
Tags mysql