Estoy usando un sistema con dos máquinas que ejecutan mysql en replicación maestro/maestro.
Me gustaría trasladar los sistemas a máquinas nuevas que también realicen replicación maestro/maestro. ¿Es posible hacer eso sin eliminar un nodo del clúster antiguo y reemplazarlo con un nodo nuevo y crear una nueva replicación desde el primer nodo nuevo al segundo?
Digamos que tenemos dos nodos, nodo1 y nodo2, que están activos y haciendo maestro/maestro, ¿cómo muevo "mágicamente" el clúster a nuevos nodos llamados nuevo1 y nuevo2 sin demasiado tiempo de inactividad?
Respuesta1
Tienes M1 <=> M2; desea terminar con el nuevo hardware M3 <=> M4.
- (breve interrupción) Mueva a todos los clientes (escritores y lectores) a M2.
- Elimine M1 el tiempo suficiente para clonarlo y crear M3 en esta topología: M1 <=> M2 -> M3. (M3 es solo un esclavo de M2).
- Construya M4 a partir de M3: M1 <=> M2 -> M3 -> M4. (M3 aún no está en uso, por lo que no hay ninguna interrupción).
- (breve interrupción) Mueva todos los clientes de M1 y M2 para que apunten a M3. En el proceso de esto, asegúrese de que todas las replicaciones hayan llegado al menos a M3.
- Jetison M1 y M2. Ahora solo tienes M3 -> M4.
- (breve interrupción) Configure el maestro dual (M3 <=> M4); reorganice los clientes como desee.
Tenga en cuenta que las tres interrupciones equivalen cada una a fallar ante un Maestro muerto.
Una recomendación general al utilizar Dual-Master: escribir sólo en uno de los dos servidores; use el otro como respaldo más escala de lectura.
Mejor aún, cambie a un clúster Galera (o un clúster InnoDB) para obtener conmutación por error automática, etc. Esto permitirá que futuros cambios de topología sean aún menos dolorosos. Tales migraciones seríansimilara lo que acabo de describir.