IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Problème avec la réplication native de mysql


Sujet :

Administration MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut Problème avec la réplication native de mysql
    Bonjour,

    J'ai mis en place une réplication mysql de type master to master (ou chacun est aitre et esclave de l'autre).
    Cela fonctionne assez bien, néanmoins je rencontre un problème assez coton : lors d'une reprise après interruption de la communication entre les deux serveurs, les requête insert passent très bien (pour les autoincrement c'est bon aussi avec les décalages d'offset), mais les requêtes update c'est autre chose...

    Si je modifie la même ligne sur chacun des serveurs en y insérant des données différentes, je me retrouve à la reprise avec les données du serveur A sur le serveur B et les données du serveur B sur le serveur A, en fait la réplication se croise, ce qui pose un léger problème de cohérence de base...

    J'ai regardé pour trouver une prérogative simple de façon à rendre un serveur prioritaire à l'autre, mais rien ... (en tout cas je n'ai rien trouvé...)

    Est-ce que l'un d'entre vous aurait déjà été confronté à ce cas et y a-t-il une solution ?

    Nota : ceci est un doublon d'un précédent post glissé dans la mauvaise section

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Il n'existe pas de solution à ce problème de manière générale et il faut corriger à la main les conflits de réplication, car contrairement à d'autres SGBDR comme MS SQL Server, MySQL ne dispose pas d'un gestionnaire de conflits de réplication.
    De toute façon, la réplication des données est à utiliser le moins possible pour diverses raisons, notamment les problèmes de cohérence, mais aussi de pompage des ressources (cela coûte très cher...)

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut
    C'est bien ce qu'il me semble aussi, à croire que j'ai rêvé ou loupé quelque chose lors des premiers test ...

    Je suis en train de développer une magnifique surcouche pour gérer la reprise, ça va être coton...

    Merci quand même.

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Par défaut
    Si tu es en mode Statement et que tu sais si tu es sur le master ou le slave, il est peut être possible d'avoir différentes requêtes en fonction du serveur.

    Par exemple si sur le master tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE onetable SET oneColumn=newValue WHERE id=blahblah...
    Et sur le Slave :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE onetable SET oneColumn=newValue WHERE id=blahblah... AND oneColumn=oldValue
    A mon avis, lors de la reprise, la requete du master va s’exécuter dans tous les cas sur le slave, mais celle du slave ne fera rien sur le master si la ligne a changée entre temps.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Par défaut
    Bonjour.

    Les 3 variables suivantes sont hyper importantes dans une réplication multi-master

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # ID du serveur. !!!!! l ID doit etre diffferent sur chaque serveur
    server-id       = 1
    # pas pour l'offset
    auto_increment_increment      = 10
    # offset de replication
    auto_increment_offset         = 1
    Voir aussi le super article de Giuseppe Maxia qui illustre les possibilités d'un replication multi-master. Il est un peu vieux mais encore d'actualité.


    Le mode statement est également un nouvelle composante fondamentale d'un réplication multi master. Cela ne va pas résoudre les conflits tout seul, mais ça t'aide à les détecter; le plus délicat étant les update, car une fois que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    auto_increment_increment
    et les insert sont moins problématiques.

    BOn courage.

Discussions similaires

  1. problème avec pour activer Innodb sur Mysql
    Par jarode2 dans le forum MySQL
    Réponses: 2
    Dernier message: 28/09/2009, 18h21
  2. [MySQL] Problèmes avec les procédures stockées sous mysql
    Par GoTrUnKo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/11/2008, 22h00
  3. probléme avec mon code JAVA et MYSQL
    Par ulysse031 dans le forum JDBC
    Réponses: 5
    Dernier message: 10/05/2007, 00h46
  4. problème avec un menu généré par MySQL
    Par GhostDady dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 30/03/2006, 10h45
  5. probléme avec la création de table Mysql 5
    Par developpeur_mehdi dans le forum Outils
    Réponses: 3
    Dernier message: 19/10/2005, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo