replicação do mysql

2

se eu configurar um escravo mysql para replicação, eu ainda posso adicionar e modificar dados para o escravo de outro processo enquanto ele copia dados do mestre via log binário?

    
por user12145 09.03.2011 / 23:56

3 respostas

2

Apesar da má prática, sim, você poderia, teoricamente, fazê-lo, desde que você siga uma regra simples:

NÃO INSERIR, ATUALIZAR OU EXCLUIR QUALQUER DADOS DE QUALQUER BANCO DE DADOS PARA QUE O MESTRE ESCREVA.

Apesar da má prática, tenho visto clientes configurar bancos de dados de desenvolvimento / preparação em um escravo. O mestre replicaria para a cópia do escravo dos bancos de dados de produção e os SELECTs seriam executados a partir deles.

Os desenvolvedores liam e gravavam nos bancos de dados do desenvolvedor / teste à vontade.

Desde que os desenvolvedores nunca encostem na cópia do escravo dos bancos de dados de produção, eles geralmente nunca têm um problema.

Você também não deseja que as configurações mestre-mestre tenham bancos de dados do desenvolvedor / teste. Apenas cria mais tráfego de replicação e inchaço de log binário.

@staticsan e @pitr também fizeram pontos válidos de consideração.

+1 para vocês dois

    
por 11.03.2011 / 00:37
2

Sim, mas em caso de conflito, a replicação pára, ane Você terá que reinicializá-lo a partir do mestre.

A consequência disso é que, se você tiver duas instâncias do aplicativo, que estão gravando em muitos bancos de dados replicados, o aplicativo garante a prevenção de conflitos - o sistema ainda funcionará corretamente.

    
por 10.03.2011 / 00:27
1

Não é recomendado porque pode facilmente interromper a replicação. E quando você restaurar o escravo de um backup do mestre, perderá as alterações feitas nele.

Se você tiver para ter acesso de modificação no escravo, o que você provavelmente quer é a replicação master-master. É aí que os dois bancos de dados se replicam. Você também pode pendurar outros escravos de qualquer dos mestres. E você não precisa se limitar a dois no ringue, embora isso aumente os pontos de falha.

Outra alternativa é a replicação seletiva, em que o escravo atualiza apenas algumas tabelas ou bancos de dados. Isso funciona melhor se o aplicativo que está usando o escravo estiver realmente usando apenas um banco de dados diferente na mesma instância do servidor.

    
por 10.03.2011 / 01:15