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í .