4 votes

Mise en place d'une configuration maître-esclave mysql avec réplication synchrone

J'ai une configuration mysql maître->esclave très banale en cours entre deux serveurs. Le problème est que la réplication est asynchrone, et cela peut causer des problèmes (même sur une liaison à faible latence), si le serveur maître devait planter après un COMMIT avant que le thread de réplication de l'esclave ait pu récupérer le dernier journal binaire.

Y a-t-il un moyen de forcer mysql à effectuer des commits synchrones afin que la cohérence des données soit garantie dans une relation mysql->esclave?

6voto

Groxx Points 101

MySQL 5.5 dispose de la réplication semi-synchrone. Fondamentalement, cela garantit qu'au moins un esclave a reçu la transaction avant qu'elle ne soit validée.

http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html

2voto

MarkR Points 2878

La réplication normale de MySQL est nécessairement asynchrone, il n'y a pas de verrous distribués et le maître n'est jamais bloqué en attendant les esclaves. Cela présente des avantages et des inconvénients.

DRBD + heartbeat est la solution standard pour éviter la perte de données en cas de perte permanente du maître.

Vous pouvez utiliser DRBD + heartbeat sous la réplication normale ce qui permet d'avoir une mise à l'échelle en lecture ou des réplicas hors site ainsi qu'une très grande durabilité.

Comme DRBD effectue une réplication synchrone au niveau du bloc, vous avez besoin que le réseau ait une très faible latence pour obtenir de bonnes performances (gigE est correct, des interconnexions personnalisées à faible latence sont meilleures si vous avez des exigences de performances très élevées).

1voto

user13993 Points 257

MySQL Cluster fournit une réplication synchrone mais le moteur (NDBCLUSTER) n'est pas adapté à de nombreux cas d'utilisation.

Continuent avait une solution de réplication synchrone (Sequoia) mais elle n'est plus activement développée.

La norme de facto est DRBD + Heartbeat mais il est non trivial à mettre en place.

A votre santé

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X