Pregunta

Quiero hacer una máquina ESCLAVO dedicado para la replicación de datos de la base de datos de tres en tres servidores diferentes. En otras palabras, lo que quiero hacer Maestro => replicación solo esclavo múltiple.

¿Hay alguna manera de hacer esto, tan simple como puede ser?

Gracias!

¿Fue útil?

Solución

replicación Multi-master (un esclavo con más de un maestro) no está soportado por MySQL (además de MySQL Cluster). Se puede hacer una replicación maestro-maestro de una replicación circular (anillo) (descrito aquí o aquí ).

alto rendimiento segundo MySQL edición los autores describen una forma de emular la replicación multi-master utilizando una combinación inteligente de la replicación maestro-maestro y el Blackhole motor de almacenamiento (Capítulo 8 de replicación> replicación Topologías> costumbre Replication Solutions> Emulación de la replicación de varios p 373 -. 375 )

Se muestran dos topologías posiblemente:

Uso de dos co-maestros (que permite conmutar el dueño del esclavo de Master 1 a Master 2 )

  • Master 1: anfitriones DB1 y réplicas DB2 de Master 2 ; el motor de almacenamiento para todas las tablas de DB2 se cambia a Blackhole modo que los datos no se almacenan de manera efectiva en Master 1 .
  • Master 2: anfitriones DB2 y réplicas DB1 de Master 1 ; el motor de almacenamiento para todas las tablas de DB1 se cambia a Blackhole modo que los datos no se almacenan de manera efectiva en Master 2
  • Slave 1: réplicas DB1 y DB2 de Master 1 o Master 2 (que permite a los maestros de conmutación); el resultado es que Slave 1 replica ambas bases de datos que están alojados de manera efectiva en dos maestros diferentes.

Uso de una cadena principal

  • Master 1: sólo los hosts DB1
  • Master 2: anfitriones DB2 y réplicas DB1 de Master 1 ; el motor de almacenamiento para todas las tablas de DB1 se cambia a Blackhole modo que los datos no se almacenan de manera efectiva en Master 2
  • Slave 1: réplicas DB1 y DB2 de Master 2 ; el resultado es que Slave 1 replica ambas bases de datos que están alojados de manera efectiva en dos maestros diferentes.

Tenga en cuenta que esta configuración sólo se le permite enviar actualizaciones de DB1 a Master 1 y cambios a DB2 a Master 2 . puede no Actualizaciones de envío a cualquiera de las tablas a maestros arbitrarias.

Pehaps Es posible combinar la solución descrita con el corte para una verdadera replicación maestro-maestro (permitiendo cambios a ambos maestros) que utiliza algún tipo de autoincrement-mangling y se describe aquí o aquí .

Otros consejos

No hay manera de que yo sepa.

Sin embargo, si el requisito aquí es simplemente tener una sola máquina de copia de seguridad basada en la replicación, puede fácilmente lo suficientemente ejecutar tres servidores MySQL (en diferentes direcciones y / o puertos) - lo hacemos aquí, con dos anillos de replicación que cada incluir nuestro propio servidor de ensayo como un nodo.

Una idea fuera de la pared, si realmente desea que todos los datos en un único servidor y los esquemas de tablas se fijan bien, o más o menos estática y bajo su control: configurar un servidor con las tres bases de datos y vincular todas las tablas usando el motor federado. En teoría (enorme advertencia: nunca he probado!), A continuación, puede replicarse fuera de esas tablas federadas a un segundo servidor (de nuevo, posiblemente en la misma máquina), que le da auténticos ejemplares vivos de los datos en un solo MySQL ejemplo. Incluso se puede intentar replicar de nuevo, pero de esa manera, posiblemente, a la locura:)

No sé mucho acerca de MySQL, pero no tiene la posibilidad de establecer una 'solamente carga' configuración de replicación, donde el papel del maestro / editor es sólo para actualizaciones de cobro realizadas a nivel esclavo / abonado .

podría valer la pena un vistazo a de Maatkit mesa de sincronización - no es la replicación "real" pero podría ser lo suficientemente bueno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top