Você pode querer examinar uma configuração do Distribution Master.
Isso envolveria a criação de um Escravo (chamado de Mestre de Distribuição) que possui três (3) características:
- log-bin Ativado
- log-slave-updates Ativado
- Todo banco de dados (exceto information_schema e mysql) possui tabelas BLACKHOLE somente
Que bem isso faria?
Imagine este cenário
- 26 instâncias do MySQL
- ServerA é Write Master
- ServerB é mestre de distribuição
- ServerC ... ServerZ são Read Slaves of ServerB
Aqui está o que acontece quando um INSERT é executado no ServerA
- Registros do ServidorA Entrada para o INSERT em seu Log Binário Atual
- Thread de E / S do ServerB importa INSERT do Log binário do ServerA
- Registros de thread de E / S do ServerB INSERT em seus Logs de relay
- SQL Thread do ServerB lê INSERT de seus Logs de Relay
- ServerB processa o SQL
- Registros ServerB Entrada para o INSERT em seu log binário atual
- ServerB serve o INSERT de seu Log binário para o Log de retransmissão do ServerC ... ServerZ
Isso fornece os seguintes benefícios
- O ServerA (Write Master) não fica atolado executando tarefas de replicação
- ServerB (Distribution Master) não armazena dados localmente. Ele fornece apenas um canal para passar entradas de log binárias para todos os escravos de leitura. Assim, nenhuma E / S de gravação pesada.
Isso foi tentado por outras pessoas. Na verdade, eu respondi uma pergunta para alguém na DBA StackExchange e StackOVerflow . É uma opção viável para alguém disposto a fazer o trabalho de perna, mas tem uma boa distribuição de E / S de leitura em dois ou mais escravos.
Se você está preocupado com a alta disponibilidade, não há problema. Você tem duas opções:
OPÇÃO 1
Refaça a configuração da seguinte forma
- 26 instâncias do MySQL
- ServerA é o Active Write Master
- ServerB é mestre de gravação passiva
- ServerC é o mestre de distribuição
- ServerD ... ServerZ são Read Slaves of ServerC
- ServerA e ServerB são pares de replicação circular
- Backups para dados podem ser feitos no ServerB
OPÇÃO 2: Use MySQL e DRBD
Apresente redundância em nível de disco por meio de DRBD e ucarp
- 26 instâncias do MySQL
- ServerA é o DRBD Primary com o MySQL sendo executado como Write Master
- ServerB é DRBD secundário com o MySQL Down
- ServerB fornece réplica em nível de disco do volume de dados do ServerA
- Execute o ucarp para o DB VIP apontando para o DRBD Primário
- ServerC é mestre de distribuição cujo mestre é o principal DRBD
- ServerD ... ServerZ são Read Slaves of ServerC