Vamos pensar em um cenário simples em que todos os servidores de banco de dados (Servidor 1, Servidor2 e servidor3) estão geograficamente localizados em sites diferentes vinculados por meio de uma VPN ou outra rede que possa ter falhas de link. Agendamos que a cada 10 minutos o mestre seja alterado.
Para que isso seja possível, devemos parar o escravo e mudar o mestre para o de um novo servidor. Basicamente, é uma rotação cíclica de rodízio para os endereços IP dos mestres em cada banco de dados, mas lembre-se de parar o escravo, mudar mestre e depois iniciar o escravo.
O script de pseudo-código para cada servidor é o seguinte:
Servidor 1
Script 1 executado por 10 minutos e, em seguida, encadeado para o script 2:
- Parar escravo
- Alterar mestre para o do servidor 2
- Iniciar escravo
Script 2 executado por 10 minutos, depois encadeado no script 1:
- Parar escravo
- Alterar mestre para o do servidor 3
- Iniciar escravo
Servidor 2
Script 1 executado por 10 minutos e, em seguida, encadeado para o script 2:
- Parar escravo
- Alterar mestre para o do servidor 3
- Iniciar escravo
Script 2 executado por 10 minutos, depois encadeado no script 1:
- Parar escravo
- Alterar mestre para aquele do servidor 1
- Iniciar escravo
Servidor 3
Script 1 executado por 10 minutos e, em seguida, encadeado para o script 2:
- Parar escravo
- Alterar mestre para aquele do servidor 1
- Iniciar escravo
Script 2 executado por 10 minutos, depois encadeado no script 1:
- Parar escravo
- Alterar mestre para o do servidor 2
- Iniciar escravo
Isto é como um tipo de sincronização agendada entre os mestres.
Quaisquer comentários são muito bem-vindos.