web-dev-qa-db-fra.com

Comment relancez-vous le MASTER MYSQL DB avec des modifications de DB esclave si le maître passe hors ligne?

MySQL Server 1 fonctionne en tant que maître.
MySQL Server 2 fonctionne comme esclave.

Avec les deux DBS en ligne, ils sont en "Sync parfait". Si esclave passe hors ligne, il n'y a pas de problème si maître toujours en ligne; Ils vont revenir en arrière une fois que l'esclave est à nouveau en ligne.

Outre la configuration du serveur, j'ai redirigé la connexion (avec code JSP) pour l'esclave dB si le maître passe hors ligne (j'ai testé bien sûr avec /etc/init.d/mysqld Stop).

Lorsque le maître revient en ligne, existe-t-il une méthode automatique pour synchroniser le maître avec des mises à jour des esclaves?

11
Tiago

Pas avec une réplication asynchrone qui est ce que propose MySQL. Vous venez de frapper l'ongle proverbial de la raison pour laquelle la réplication MySQL "hors de la boîte" (PRE 5.5) n'est pas une solution de haute disponibilité en soi. Les choses vont légèrement mieux avec 5.5 avec une réplication semi-synchrone (http://dev.mysql.com/doc/refman/5.5/fr/replication-semisync.html), mais au prix de temps de transaction plus lent lorsque le maître attend le ACK de l'esclave.

Si vous acceptez la possibilité de perte de données lorsque le Maître diminue n'est pas une option, je dirais une configuration plus sophistiquée que celle du maître/esclave simple est en ordre.

Master to Master Replication a été considéré plus de problèmes que de bénéficier de nombreux familles de MySQL (même MySQL AB lui-même ne le recommande plus comme une solution de haute disponibilité). Donc, je pense que l'utilisation de la configuration DRBD pour maintenir le maître actif et l'esclave passive en synchronisation à l'aide de copies de niveau de bloc est ce que vous avez réellement besoin ici.

2
TechieGurl