sql >> Base de Datos >  >> RDS >> Mysql

¿Es posible hacer N-master => replicación de 1 esclavo con MySQL?

La replicación multimaestro (un esclavo con más de un maestro) no es compatible con MySQL (además de MySQL Cluster). Puede hacer una replicación maestro-maestro de una replicación circular (en anillo) (descrita aquí o aquí ).

En Segunda edición de MySQL de alto rendimiento los autores describen una forma de emular la replicación multimaestro usando una combinación inteligente de replicación maestro-maestro y Blackhole motor de almacenamiento (Capítulo 8 Replicación> Topologías de replicación> Soluciones de replicación personalizadas> Emulación de replicación multimaestro p. 373 - 375 ).

Muestran dos posibles topologías:

Usar dos co-maestros (permitiendo cambiar el maestro del esclavo de Maestro 1 al Maestro 2 )

  • Maestro 1: aloja DB1 y replica DB2 de Maestro 2; el motor de almacenamiento para todas las tablas en DB2 se cambia a Blackhole para que los datos no se almacenen efectivamente en Master 1 .
  • Maestro 2: aloja DB2 y replica DB1 de Maestro 1; el motor de almacenamiento para todas las tablas en DB1 se cambia a Blackhole para que los datos no se almacenen efectivamente en Master 2
  • Esclavo 1: replica DB1 y DB2 de cualquiera de Maestro 1 o Maestro 2 (permitiendo cambiar maestros); el resultado es que Esclavo 1 replica ambas bases de datos que están efectivamente alojadas en dos maestros diferentes.

Uso de una cadena maestra

  • Maestro 1: solo aloja DB1
  • Maestro 2: aloja DB2 y replica DB1 de Maestro 1; el motor de almacenamiento para todas las tablas en DB1 se cambia a Blackhole para que los datos no se almacenen efectivamente en Master 2
  • Esclavo 1: replica DB1 y DB2 de Maestro 2; el resultado es que Esclavo 1 replica ambas bases de datos que están efectivamente alojadas en dos maestros diferentes.

Tenga en cuenta que esta configuración solo le permite enviar actualizaciones a DB1 a través de Maestro 1 y actualizaciones de DB2 al Maestro 2 . no puedes enviar actualizaciones a cualquiera de las tablas a maestros arbitrarios.

Tal vez sea posible combinar la solución descrita con el truco para una verdadera replicación maestro-maestro (permitiendo actualizaciones a ambos maestros) que utiliza algún tipo de autoincremento-mangling y se describe aquí o aquí .