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 :

MySQL problème réplication master/master


Sujet :

Administration MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 3
    Points
    3
    Par défaut MySQL problème réplication master/master
    Bonjour,

    Voilà je n'arrive plus à refaire fonctionner mes deux serveurs MySQL en l'état de master/master.

    Sur bdd00, il y a eu une mise à jour de plusieurs milliers de lignes et apparemment cela a généré une erreur sur bdd01 qui n'arrivait pas à exécuter certaines requêtes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [ERROR] Slave: Query caused different errors on master and slave. Error on master: 'Query execution was interrupted' (1317), Error on slave: 'no error' (0). Default database: 'annu_siren'. Query: 'insert IGNORE into TBL_SIREN (SELECT i.siren, i.raison_sociale,  s.statut_code, m.mng_id, b.bu_code, i.date_maj
    Sep 10 07:45:05 eprpl-bdd01-pr mysqld[599]:     FROM TBL_TEMP_INSERT i, TBL_STATUT s, TBL_BU b, TBL_MANAGER m
    Sep 10 07:45:05 eprpl-bdd01-pr mysqld[599]:     WHERE i.statut = s.statut_lib
    Sep 10 07:45:05 eprpl-bdd01-pr mysqld[599]:         AND i.nom = m.mng_nom
    Sep 10 07:45:05 eprpl-bdd01-pr mysqld[599]:         AND i.prenom = m.mng_prenom
    Sep 10 07:45:05 eprpl-bdd01-pr mysqld[599]:         AND i.email = m.mng_email
    Sep 10 07:45:05 eprpl-bdd01-pr mysqld[599]:         AND i.bu = b.bu_lib)', Error_code: 0
    Sep 10 07:45:05 eprpl-bdd01-pr mysqld[599]: 090910  7:45:05 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000086' position 71009157
    J'ai donc arreté la réplication, fait un dump de la base bdd00 où il y a eu la mise à jour puis importer sur bdd01 et relancé la réplication.

    Tout semblait refonctionné et au bout de plusieurs dizaines de minutes c'est retombé avec la même erreur. J'ai alors utilisé la commande reset slave sur bdd01 mais je 'n'arrive toujour pas à redémarré correctement la réplication.


    Voici l'état des deux serveurs :

    BDD00 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    mysql> show master status\G
    *************************** 1. row ***************************
                File: mysql-bin.000118
            Position: 9335578
        Binlog_Do_DB:
    Binlog_Ignore_DB: mysql
    1 row in set (0.00 sec)
     
    mysql> show slave status\G
    *************************** 1. row ***************************
                 Slave_IO_State: Waiting for master to send event
                    Master_Host: 10.111.129.67
                    Master_User: replication
                    Master_Port: 3306
                  Connect_Retry: 60
                Master_Log_File: mysql-bin.000092
            Read_Master_Log_Pos: 98
                 Relay_Log_File: eprpl-bdd00-pr-relay-bin.001136
                  Relay_Log_Pos: 235
          Relay_Master_Log_File: mysql-bin.000092
               Slave_IO_Running: Yes
              Slave_SQL_Running: Yes
                Replicate_Do_DB:
            Replicate_Ignore_DB:
             Replicate_Do_Table:
         Replicate_Ignore_Table:
        Replicate_Wild_Do_Table:
    Replicate_Wild_Ignore_Table:
                     Last_Errno: 0
                     Last_Error:
                   Skip_Counter: 0
            Exec_Master_Log_Pos: 98
                Relay_Log_Space: 235
                Until_Condition: None
                 Until_Log_File:
                  Until_Log_Pos: 0
             Master_SSL_Allowed: No
             Master_SSL_CA_File:
             Master_SSL_CA_Path:
                Master_SSL_Cert:
              Master_SSL_Cipher:
                 Master_SSL_Key:
          Seconds_Behind_Master: 0
    1 row in set (0.00 sec)

    BDD01 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    mysql> show master status\G
    *************************** 1. row ***************************
                File: mysql-bin.000092
            Position: 98
        Binlog_Do_DB:
    Binlog_Ignore_DB: mysql
    1 row in set (0.00 sec)
     
    mysql> show slave status\G
    *************************** 1. row ***************************
                 Slave_IO_State:
                    Master_Host: 10.111.129.66
                    Master_User: test
                    Master_Port: 3306
                  Connect_Retry: 60
                Master_Log_File: mysql-bin.000116
            Read_Master_Log_Pos: 4
                 Relay_Log_File: eprpl-bdd01-pr-relay-bin.000001
                  Relay_Log_Pos: 98
          Relay_Master_Log_File: mysql-bin.000116
               Slave_IO_Running: No
              Slave_SQL_Running: Yes
                Replicate_Do_DB:
            Replicate_Ignore_DB:
             Replicate_Do_Table:
         Replicate_Ignore_Table:
        Replicate_Wild_Do_Table:
    Replicate_Wild_Ignore_Table:
                     Last_Errno: 0
                     Last_Error:
                   Skip_Counter: 0
            Exec_Master_Log_Pos: 4
                Relay_Log_Space: 254
                Until_Condition: None
                 Until_Log_File:
                  Until_Log_Pos: 0
             Master_SSL_Allowed: No
             Master_SSL_CA_File:
             Master_SSL_CA_Path:
                Master_SSL_Cert:
              Master_SSL_Cipher:
                 Master_SSL_Key:
          Seconds_Behind_Master: NULL
    1 row in set (0.00 sec)

    IO_running de bdd01 ne veut plus démarrer. Concernant master log file, il faut qu'il face référence à celui du master de bdd00 ou bdd01?

    Comment puis-je résoudre mon problème?

  2. #2
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    Je viens de comprendre que le reset slave a aussi viré les paramètres de connexion (change master to) j'ai donc tout remis et pour la partie master_log_file j'ai mis le même que le master bdd01. La réplication est repartie correctement maintenant j'attend de vois si ca tient...

  3. #3
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    Bon maintenant du au fait que j'ai importé la base je pense que je vais avoir plein d'erreurs de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Last_Error: Error 'Duplicate entry '1165' for key 1' on query. Default database: 'annu_siren'. Query: 'INSERT INTO TBL_LOG(ID,EXPEDITEUR_ID, DESTINATAIRE_EMAIL, SIREN) VALUES ('', 9454,...")
    Comment puis-je lui dire de juste vérifier si il ne lui manque pas des données par rapport a bdd00 au lieu d'essayer de refaire toutes les requêtes??

  4. #4
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 3
    Points
    3
    Par défaut
    Est-ce que quelqu'un pourrait me dire comment reinitialiser toute la replication? Je dois faire des reset master et slave sur les deux serveurs en plus de supprimer les bases sur bdd01?

  5. #5
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut
    Comment ré injectes tu la base sur le deuxième serveur ?

    La procédure veut que tu arrêtes la réplication sur les 2 serveurs, tu prends ta master position et le log bin file sur le premier serveur, tu fais un dump de cette base là, que tu réinjectes sur le deuxième avec un change master to master_host ... puis un start slave.

    Une fois le deuxième fait, tu fais la même chose pour le premier (sans la restauration du dump bien entendu). Tu prends donc la master postion et le log bin file du deuxième que tu mets sur le premier serveur avec un change master to master_host ... suivi d'un start slave

    J'espère que tu t'en sortiras.

  6. #6
    Membre confirmé
    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
    Points : 465
    Points
    465
    Par défaut
    salut a tous.
    quand on veut faire de la replication master/master ou circulaire, le mieux est d'activer les options suivantes dans le fichier ini des serveurs.

    auto_increment_increment
    http://dev.mysql.com/doc/refman/5.1/...ment_increment

    auto_increment_offset
    http://dev.mysql.com/doc/refman/5.1/...crement_offset

    le but étant d'attribuer à chaque serveur un offset différent sur les champs auto incrementés

    J'ai pas trouvé de tut en français :
    http://www.neocodesoftware.com/replication/

    bon courage
    La connaissance s'accroit lorsqu'on la partage.

Discussions similaires

  1. [9.2] Outil Réplication PostgreSQL Master-Master
    Par abenelbaida dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 12/06/2014, 11h58
  2. Réponses: 0
    Dernier message: 09/04/2014, 19h14
  3. [MYSQL]Réplication: 1 master, 1 slave par base
    Par _$onic_ dans le forum Administration
    Réponses: 0
    Dernier message: 18/11/2008, 12h12
  4. Erreur de Réplication Oracle (Master Replication)
    Par manawajaws dans le forum Oracle
    Réponses: 8
    Dernier message: 05/10/2006, 10h25
  5. Réplication Postgresql Master -> Mysql Slave
    Par livingdead dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 11/02/2005, 15h29

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