2008-08-06 16 views
19

Actualmente tengo dos servidores Linux ejecutando MySQL, uno sentado en un rack junto a mí debajo de un conducto de carga de 10 Mbit/s (servidor principal) y otro a unos pocos kilómetros de distancia en un tubo de carga de 3 Mbit/s (espejo) .Completa replicación completa de la base de datos MySQL? Ideas? ¿Que hace la gente?

Quiero ser capaz de replicar datos en ambos servidores continuamente, pero me he encontrado con varios bloqueos. Uno de ellos es, bajo las configuraciones maestro/esclavo de MySQL, de vez en cuando, algunas declaraciones caen (!), Que significa; algunas personas que inician sesión en la URL espejo no ven datos que sé que están en el servidor principal y viceversa. Digamos que esto ocurre en un bloque significativo de datos una vez al mes, así que puedo vivir con eso y asumir que es un problema de "paquete perdido" (es decir, Dios sabe, pero lo compensaremos).

El otro problema recurrente más importante (y molesto) es que, cuando por alguna razón realizamos una carga o actualización importante (o reinicio) en un extremo y tenemos sever el enlace, LOAD DATA FROM MASTER no lo hace trabajo y tengo que volcar manualmente en un extremo y cargarlo en el otro, una tarea bastante común hoy en día mover un valor de .5 TB de datos.

¿Hay software para esto? Sé que MySQL (la "corporación") ofrece esto como un servicio MUY caro (replicación completa de la base de datos). ¿Qué hace la gente de afuera? De la forma en que está estructurado, ejecutamos un failover automático donde si un servidor no está activo, entonces la URL principal simplemente se resuelve en el otro servidor.

+0

Tal vez esto podría ser la inspiración: [http://www.howtoforge.com/loadbalanced_mysql_cluster_debian](http://www.howtoforge.com/loadbalanced_mysql_cluster_debian) – svrist

Respuesta

0

GoldenGate es una muy buena solución, pero probablemente tan cara como el replicador de MySQL.

Básicamente se dirige al diario y aplica cambios en función de lo que se ha cometido. Admiten la replicación bidireccional (una tarea difícil) y la replicación entre sistemas heterogéneos.

Dado que trabajan procesando el archivo de diario, pueden realizar una replicación distribuida a gran escala sin afectar el rendimiento en la (s) máquina (s) de origen.

0

Nunca he visto declaraciones descartadas, pero hay un error donde los problemas de red pueden causar daños en el registro de retransmisión. Asegúrate de no ejecutar mysql sin esta solución.

documentado en el 5.0.56, 5.1.24, 6.0.5 y registros de cambios de la siguiente manera:

Network timeouts between the master and the slave could result 
    in corruption of the relay log. 

http://bugs.mysql.com/bug.php?id=26489

3

Nosotros en herramientas gratuitas oferta Percona para detectar discrepancias entre el maestro y servidor, y para volver a sincronizarlos al volver a aplicar cambios mínimos.

Cuestiones relacionadas