Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/03/2014, à 02:46

TurBino

Réplication Mysql

Bonjour,

J'ai mis en place une réplication Mysql Master/Slave sur deux serveurs LAMP.
Le tous fonctionne parfaitement. Mes serveurs apache/php utilisent l'adresse du Master pour accéder aux bases, mais je constate (via la commande ps) que seul le serveur Mysql sur Master travail.
Ma question est la suivante :

Master ne devrait t'il pas garder les requêtes d'écriture pour lui et transmettre les requêtes de lecture sur Slave ?

Cordialement,

Hors ligne

#2 Le 05/03/2014, à 16:54

pires57

Re : Réplication Mysql

et pourquoi donc? slave n'est la pour prendre le relais dans un seul et unique cas, celui ou master ne peut pas répondre pour une quelconque raison (il est down .... )
Si tu veut que les deux travail, alors ce que tu doit regarder c'est le load balancing.


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#3 Le 06/03/2014, à 00:27

tiramiseb

Re : Réplication Mysql

Salut,

En complément à ce que dit pires57, j'ajouterais que le passage sur le slave lorsqu'il y a une éventuelle panne n'a rien de magique : c'est à ton application de gérer ça.

La réplication master/slave, c'est simplement le master qui retransmet les requêtes de création/modification/effacement au slave, afin que ce dernier ait un contenu identique. C'est tout.

Si tu veux que les requêtes de lecture passent par le slave et que les requêtes d'écriture passent par le master, il faut modifier ton application afin qu'elle le fasse d'elle-même.

Hors ligne

#4 Le 06/03/2014, à 01:40

TurBino

Re : Réplication Mysql

Bonsoir,

En faite j'ai lu sur le site de Mysql (http://dev.mysql.com/doc/refman/5.0/fr/ … intro.html) je cite

"L'accélération provient de la répartition de la charge de traitement des requêtes clients entre le maître et les esclaves, permettant un meilleur temps de réponse. Les requêtes SELECT peuvent être envoyées aux esclaves pour réduire la charge du maître. Les requêtes de modifications des données sont envoyées au maître, qui les transmettra aux esclaves. Cette stratégie de répartition de charge est efficace si les lectures sont plus nombreuses que les écritures, ce qui est la situation la plus courante."

Je croyais que cela ce faisais tous seul.
Donc je dois me diriger vers une autre solution pour faire du load balancing car je ne peux pas modifier mon application.

Que me conseillez vous ? A savoir que j'aimerais que si l'un de mes serveurs lâche l'autre prenne la relève et avoir la possibilité d'ajouter X serveurs en cas de besoin.
Ma config est la suivante

    Internet
          |
  HA Proxy
       /      \
     /          \
   /              \
/                  \   
SRV1 <-->  SRV2

A savoir que
- Site1 + 2 sont identique
- Ubuntu 12.04 Serveur
- Interface dédié pour la réplication.
- Apache/php
- Mysql

Merci

Hors ligne

#5 Le 06/03/2014, à 18:10

pires57

Re : Réplication Mysql

Et alors? dans ce cas il n'y a pas de problème, dans tes fonctions de modification tu ajoutes en paramètre l'adresse IP de master et dans celle d’interrogation tu lui ajoutes celle de slave


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#6 Le 06/03/2014, à 20:01

TurBino

Re : Réplication Mysql

Le problème c'est que je ne peux pas modifier mes CMS qui tournent sur les serveurs.

Hors ligne

#7 Le 06/03/2014, à 20:47

pires57

Re : Réplication Mysql

tu ne peut rien faire au niveau de tes serveurs, c'est au niveau de tes applis que tu doit gérer cela, pas au niveau des serveurs


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#8 Le 06/03/2014, à 23:34

tiramiseb

Re : Réplication Mysql

Salut,

Tu as une autre solution : faire une grappe MySQL multi-maîtres et configurer chacun de tes serveurs web pour qu'il interroger un serveur MySQL différent. Par contre, ce n'est pas une solution des plus faciles à gérer...

Hors ligne

#9 Le 07/03/2014, à 00:21

pires57

Re : Réplication Mysql

ce qui signifie aussi qu'il n'y a plus de notion master / slave a proprement parlé, chaque serveur auras sa base de donnée et comme l'a dit tiramiseb c'est extrêmement compliqué a géré...


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#10 Le 07/03/2014, à 18:22

TurBino

Re : Réplication Mysql

En faite j'ai déjà testé le Master/Master cela à bien fonctionné pendant des mois, mais un jour le lien entre les deux serveur (interface dédié à la réplication) à lâché.
Je me suis donc retrouvé avec deux versions de base de données différente.
Une semaine pour tout remettre en place...
Du coup j'ai fait des recherches et je suis tombé sur "Mysql-proxy". Il fait de nombreuses choses mais plus particulièrement il est capable de rediriger les requêtes de type select vers X et le reste vers Y.
Je suis en testing pour le moment. Le but étant d'installer sur chaque serveur un proxy qui redirige les requêtes SELECT en local et le reste sur Master.

Hors ligne

#11 Le 07/03/2014, à 19:40

tiramiseb

Re : Réplication Mysql

Je me suis donc retrouvé avec deux versions de base de données différente.

C'est un des problèmes des bases multi-maîtres...

je suis tombé sur "Mysql-proxy"

Ah oui tiens, ça semble pas mal ce truc.

Hors ligne