Estou usando um sistema com duas máquinas executando mysql na replicação mestre/mestre.
Gostaria de mover os sistemas para novas máquinas que também estejam fazendo replicação mestre/mestre. É possível fazer isso sem remover um nó do cluster antigo e substituí-lo por um novo nó e criar uma nova replicação do primeiro nó novo para o segundo?
Digamos que temos dois nós node1 e node2 que estão ativos e fazendo master/master, como faço para mover "magicamente" o cluster para novos nós chamados new1 e new2 sem muito tempo de inatividade.
Responder1
Você tem M1 <=> M2; você quer acabar com o novo hardware M3 <=> M4.
- (breve interrupção) Mova todos os clientes (escritores e leitores) para M2.
- Desative M1 por tempo suficiente para cloná-lo e criar M3 nesta topologia: M1 <=> M2 -> M3. (M3 é apenas um escravo do M2.)
- Construa M4 a partir de M3: M1 <=> M2 -> M3 -> M4. (O M3 ainda não está em uso, portanto não há interrupção.)
- (breve interrupção) Mova todos os clientes de M1 e M2 para que apontem para M3. Nesse processo, certifique-se de que toda a replicação tenha chegado pelo menos ao M3.
- Jetison M1 e M2. Agora você tem apenas M3 -> M4.
- (breve interrupção) Configure dual-Master (M3 <=> M4); reorganize os clientes como desejar.
Observe que as três interrupções são equivalentes à falha de um Mestre morto.
Uma recomendação geral ao usar Dual-Master: Grave em apenas um dos dois servidores; use o outro como backup mais escala de leitura.
Melhor ainda, mude para um Galera Cluster (ou InnoDB Cluster) para obter failover automático, etc. Isso permitirá que futuras alterações de topologia sejam ainda menos dolorosas. Essas migrações seriamsemelhanteao que acabei de descrever.