2008-08-11 13 views
10

Cuando tengo dos servidores mysql que tienen trabajos diferentes (que tienen bases de datos diferentes) pero quiero poder usar uno de ellos para deslizarme cuando el otro falla, ¿qué sugieres cómo guardo el datos sobre ambos igual a "cerca de tiempo real"?Replicación de MySQL para el escenario alternativo

Obviamente, no es posible realizar un volcado completo de la base de datos cada x minutos.

He leído sobre Binary Log, ¿es así como tengo que ir? ¿Eso no ralentizará mucho el servidor de respaldo? ¿Hay alguna manera de no incluir algunas tablas en el registro binario, donde no importa que los datos hayan cambiado?

+0

He estado teniendo exactamente este mismo problema, todavía no estoy del todo seguro de qué hacer con él. [Aquí está mi pregunta de SO con un par de sugerencias más]] (http://stackoverflow.com/questions/3798/full-complete-mysql-db-replication-ideas-what-do-people-do)./mp – mauriciopastrana

Respuesta

2

El registro binario es definitivamente el camino a seguir. Sin embargo, debe tener en cuenta que con MySQL no puede simplemente ir y venir entre servidores de ese tipo.

Un servidor será el maestro y el otro será el esclavo. Usted escribe/lee en el maestro, pero solo puede leer desde el servidor esclavo. Si alguna vez le escribe al esclavo, no estará sincronizado y no hay una manera fácil de hacer que se sincronicen de nuevo (básicamente, tiene que cambiarlos para que el maestro sea el nuevo esclavo, pero este es un proceso manual tedioso).)

Si necesita bases de datos de copia de seguridad intercambiables en tiempo real, es posible que deba ir a un sistema que no sea MySQL. Si lo único que desea es una copia de seguridad en vivo de solo lectura que pueda usar al instante en el peor de los casos (el maestro se destruye permanentemente), el Registro binario le irá bien.

3

Es posible que desee considerar el escenario de replicación master-master, pero con un ligero giro. Puede especificar qué bases de datos replicar y limitar la replicación para cada servidor.

Para server1 agregaría --replicate-do-db=server_2_db y en server2 --replicate-do-db=server_1_db a su my.cnf (o my.ini en Windows). Esto significaría que solo las declaraciones para server_1_db se replicarían en server2 y viceversa.

También asegúrese de realizar copias de seguridad completas de forma periódica y no solo confiar en la replicación, ya que no proporciona seguridad frente a declaraciones DROP DATABASE accidentales o similares.

Cuestiones relacionadas