Ver Mensaje Individual
  #23 (permalink)  
Antiguo 20/12/2007, 19:19
Avatar de pragone
pragone
 
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Replica de una bd

Hola, este thread está genial!!1

Con respecto a cuál es la mejor configuración de Master/Slaves, en el caso de irene_osiris y de Fresh2000, definitivamente lo mejor que pueden hacer es un master el resto slaves.
Esto es así porque si lo hicieran de forma anidada cualquier fallo hace que los servidores siguientes estén desactualizados, además como la replicación en MySQL es Single-threaded, la ejecución de un SQLs muy pesados harían que la replicación en el último servidor se retrasara el tiempo de ejecución del SQL por el número de servidores hasta llegar al master principal.

Con respecto a la configuración de las IPs que comentas irene_osiris, me parece extraña, supongo que la IP virtual que apunta al master y a uno de los esclavos sólo la usas para lectura, porque de lo contrario podrías estar ejecutando queries de modificación en un esclavo y, como estoy seguro ya lo sabes, eso es un NO-NO.
Además te recomendaría que el maestro sólo lo utilizaras para escritura, no quieres que un query de lectura que toque muchos registros te imponga un read-lock que te bloquee las escrituras a la BD.

Finalmente, con respecto a un sistema para que si un maestro se cae otro entre en su lugar, lo mejor que puedes hacer es tener un servidor master secundario (que normalmente no es más que otro slave) e instales en los servidores un "heartbeat". Esto te permite saber si una máquina está "viva" y si no, puedes ejecutar scripts para cambiar a otro y hacer los cambios pertinentes.

Aparte de esto, me parece que sería muy importante que para que el sistema tenga alta disponibilidad deberías por lo menos tener un buen software de monitorización. Te recomiendo Nagios, está bastante bien y creo que ya viene con los scripts para "vigilar" los "seconds behind master" de los esclavos... esto es importante tenerlo en cuenta.

Finalmente, y esto sería la cereza de la seguridad para tu sistema, tendría un "lag-server". Es decir un servidor que estuviera unas 12 horas retrazado en la replicación... la finalidad de este server es que si ocurre algo que te corrompa tus bases de datos, puedes estar tranquila de que por lo menos tienes los datos con unas 12 horas de delay sin corrupción (por si acaso el REPAIR no funciona).

Mis dos centavos.