Le projet permet, via un ensemble de scripts, de gérer un environnement mysql en réplication master-master en se basant sur des adresse ip virtuelles: 1 adresse d'écriture, 2 adresses de lecture (à utiliser ensuite pour effectuer du load balancing entre les master pour les lectures).
Un moniteur présent sur une 3ème machine se charge de distribuer les adresses ip en fonction de l'état des serveur mysql.
A l'instant t, 1 seul des master dispose de l'ip d'écriture, le second master est en mode read_only. 1 adresse de lecture est distribuée sur chaque master.
Dans le cas où 1 master ne répond plus, le moniteur va redistribuer les adresses ip sur le master qui répond encore.
Le moniteur gère également le monitoring de réplication, notemment au niveau du lag de réplication: si le serveur en lecture seule subit un lag de réplication, son ip de lecture lui est retirée afin de ne pas proposer aux clients de la base des informations obsolètes.
[^] # Re: Réplication Mysql master/master
Posté par _jean . En réponse à la dépêche Répartition de charge : axes de réflexion et quelques exemples de solutions libres. Évalué à 1.
http://code.google.com/p/mysql-master-master/
Le projet permet, via un ensemble de scripts, de gérer un environnement mysql en réplication master-master en se basant sur des adresse ip virtuelles: 1 adresse d'écriture, 2 adresses de lecture (à utiliser ensuite pour effectuer du load balancing entre les master pour les lectures).
Un moniteur présent sur une 3ème machine se charge de distribuer les adresses ip en fonction de l'état des serveur mysql.
A l'instant t, 1 seul des master dispose de l'ip d'écriture, le second master est en mode read_only. 1 adresse de lecture est distribuée sur chaque master.
Dans le cas où 1 master ne répond plus, le moniteur va redistribuer les adresses ip sur le master qui répond encore.
Le moniteur gère également le monitoring de réplication, notemment au niveau du lag de réplication: si le serveur en lecture seule subit un lag de réplication, son ip de lecture lui est retirée afin de ne pas proposer aux clients de la base des informations obsolètes.