Usamos replicação em datacenters em vários países europeus (para que eles não fiquem do outro lado do mundo, mas certamente não são locais) e funciona sem nenhum problema.
A replicação será reiniciada automaticamente, se possível. Se houver um problema com uma consulta (por exemplo, um banco de dados está presente no mestre e não no escravo, e uma consulta o usa), ele exigirá correção manual por padrão (mas você pode defini-lo para ignorar esses erros). Se os bancos de dados forem espelhos exatos, você nunca precisará reiniciar manualmente a replicação.
Se você tem dois servidores e o mestre desaparece, então para transformar o escravo no 'mestre', simplesmente pare a replicação e altere seu código (para escrever no novo 'mestre'). Se você tiver três ou mais servidores e o mestre desaparecer, interrompa a replicação nos escravos, altere-os para usar o novo mestre e inicie novamente. Se eles não estiverem exatamente em sincronia (depende da quantidade de dados sendo transferidos, de quão ocupados os servidores estão, de quão boa é a conexão de rede, etc), talvez seja necessário fazer mais trabalho do que isso. A seção de replicação da documentação do MySQL aborda isso com mais detalhes .
Sugiro que você verifique se está replicando por SSL (ou seja, defina o usuário de replicação para exigir uma conexão SSL).