Réplication SQL Maitre / Maitre

Réplication SQL Maitre / Maitre - SQL/NoSQL - Programmation

Marsh Posté le 05-06-2007 à 10:21:40    

Bonjour, je vous explique mon problême, j'essaierais d'être le plus clair possible.
 
Je voudrais mettre en place une réplication d'un serveur SQL sur un autre mais avec une haute disponibilité. Pour vous donner un exemple :
 
Le serveur maitre fonctionne, l'esclave aussi ; quand on écrit sur le maitre c'est automatiquement écrit sur l'esclave.
 
Maintenant le serveur maitre crash, l'esclave prend le relais, on écrit sur l'esclave. Quand le serveur maitre revient, il faudrait qu'il récupère tout ce qui a été écrit sur l'esclave en son absence. Il faut donc une configuration Maitre / Maitre. Chaque serveur étant à la fois Maitre et esclave de l'autre.
 
J'ai donc fait cela en mettant tout ce qu'y faut dans les fichiers de conf.
 
Malheureusement il y a toujours un serveur maitre et un autre esclave, et en plus c'est aléatoire. Je n'arrive pas à savoir quand es-ce que l'un ou l'autre prend le relais :(
 
Merci d'avance pour votre aide !!!

Reply

Marsh Posté le 05-06-2007 à 10:21:40   

Reply

Marsh Posté le 05-06-2007 à 13:32:01    

A chaque fois que je poste sur ce forum, j'ai l'impression que je suis le seul à avoir des problêmes comme ça. Personne peut m'aider ?
 
Je rajoute que je suis Debian et SQL 4.0. Si vous voulez plus de précision n'hésitez pas à demander.
 
Allez un p'tit effort :|

Reply

Marsh Posté le 05-06-2007 à 13:33:22    

SQL 4.0 ?  
 
postgresl , mysql , oracle ?

Reply

Marsh Posté le 05-06-2007 à 14:03:29    

Mysql

Reply

Marsh Posté le 06-06-2007 à 09:30:23    

Hé ben heureusement que j'ai précisé que j'utilisais Mysql !

Reply

Marsh Posté le 06-06-2007 à 09:36:46    

T'en fait pas, moi c'est pareil :o
 
Ceci dit, aucune idée de comment résoudre ton problème :spamafote:
 
"Bon courage !"

Reply

Marsh Posté le 06-06-2007 à 09:42:55    

Merci le soutien c'est important quand tu bloques :D

Reply

Marsh Posté le 06-06-2007 à 09:51:50    

vous avez regardez du cote de MySQL cluster ?  
http://www.mysql.fr/products/database/cluster/

Reply

Marsh Posté le 06-06-2007 à 11:06:17    

Merci mais je me sens pas d'acheter le livre ou de me pointer au séminaire. Non mais je comprends vraiment pas parce que j'ai fait ce qu'ils disent ici http://dev.mysql.com/doc/refman/5. [...] n-faq.html (voir Q : Comment puis-je utiliser la réplication pour fournir un système à haute tolérance de panne? ) et pourtant ça marche toujours pas.
 
Si je savais au moins comment passer un esclave en maitre et vice-versa...

Message cité 1 fois
Message édité par julhahaha le 06-06-2007 à 11:07:55
Reply

Marsh Posté le 06-06-2007 à 13:20:41    

mySQL c'est un truc de tarlouse ;),  
 
bonne continuation


Message édité par moi23372 le 06-06-2007 à 13:21:18
Reply

Marsh Posté le 06-06-2007 à 13:20:41   

Reply

Marsh Posté le 06-06-2007 à 13:33:50    

Pourquoi ne pas passer à mysql 5 et utiliser la réplication multi-master ?  :heink:


---------------
When it's from Finland it's good.  - Mon blog
Reply

Marsh Posté le 06-06-2007 à 13:56:59    

julhahaha a écrit :

Merci mais je me sens pas d'acheter le livre ou de me pointer au séminaire. Non mais je comprends vraiment pas parce que j'ai fait ce qu'ils disent ici http://dev.mysql.com/doc/refman/5. [...] n-faq.html (voir Q : Comment puis-je utiliser la réplication pour fournir un système à haute tolérance de panne? ) et pourtant ça marche toujours pas.
 
Si je savais au moins comment passer un esclave en maitre et vice-versa...


 
c'est la doc de la version 5.0 ça risque de pas marcher en version 4.x
 
bon courage ;)

Reply

Marsh Posté le 06-06-2007 à 14:49:40    

Je peux pas passer en MySQL 5 pour des raisons de compatibilité avec un autre paquet. Donc je me retrouve coincé. Du coup là je planche plutôt sur une synchro avec Rsync. Mais si vous avez des pistes je suis toujours preneur.

Reply

Marsh Posté le 07-06-2007 à 11:36:29    

J'ai voulu utiliser Rsync ; on peut pas sauvegarder de tables à "chaud". Mais j'ai trouvé un script en PHP qui permet de sauvegarder à cahud avec Rsync. Malheureusement pour moi il faut PHP5 et je ne peux pas le mettre sur la machine :s
J'ai tout repris du début et je crois savoir d'ou vient le problême déjà j'ai ça :
 
mysql> show slave status\G;
*************************** 1. row ***************************
          Master_Host: 192.168.0.2
          Master_User: replication
          Master_Port: 3306
        Connect_retry: 10
      Master_Log_File: mysql-bin.008
  Read_Master_Log_Pos: 79
       Relay_Log_File: test-relay-bin.001
        Relay_Log_Pos: 119
Relay_Master_Log_File: mysql-bin.002
     Slave_IO_Running: Yes
    Slave_SQL_Running: No
      Replicate_do_db:
  Replicate_ignore_db:
           Last_errno: 1050
           Last_error: Error 'Table 'activ_tbl' already exists' on query. Default database: ''. Query: 'CREATE TABLE `activ_tbl` (
  `id` int(11) NOT NULL auto_increment,
  `prof` varchar(55) NOT NULL default '',
  `intit` varchar(55) NOT NULL default '',
  `cpt` varchar(55) NOT NULL default '',
  `descript` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM'
         Skip_counter: 0
  Exec_master_log_pos: 79
      Relay_log_space: 585153
1 row in set (0.00 sec)
 
ERROR:
No query specified
 
Donc on voit bien Slave_SQL_Running: No
 
Et oui j'ai fait start slave avant !
 
Dans mon /var/log/syslog.log j'ai ça :
 
Jun  7 10:55:23 test mysqld[5191]: 070607 10:55:23 Slave: Error 'Table 'activ_tbl' already exists' on query. Default database: ''. Query: 'CREATE TABLE `activ_tbl` (
Jun  7 10:55:23 test mysqld[5191]:   `id` int(11) NOT NULL auto_increment,
Jun  7 10:55:23 test mysqld[5191]:   `prof` varchar(55) NOT NULL default '',
Jun  7 10:55:23 test mysqld[5191]:   `intit` varchar(55) NOT NULL default '',
Jun  7 10:55:23 test mysqld[5191]:   `cpt` varchar(55) NOT NULL default '',
Jun  7 10:55:23 test mysqld[5191]:   `descript` varchar(255) NOT NULL default '',
Jun  7 10:55:23 test mysqld[5191]:   PRIMARY KEY  (`id`)
Jun  7 10:55:23 test mysqld[5191]: ) TYPE=MyISAM', Error_code: 1050
Jun  7 10:55:23 test mysqld[5191]: 070607 10:55:23 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.002' position 79
Jun  7 10:55:23 test mysqld[5191]: 070607 10:55:23 Slave I/O thread: connected to master 'replication@192.168.0.2:3306',  replication started in log 'mysql-bin.008' at position 79
Jun  7 11:06:44 test mysqld[5191]: 070607 11:06:44 Slave SQL thread initialized, starting replication in log 'mysql-bin.002' at position 79, relay log './test-relay-bin.001' position: 119
Jun  7 11:06:44 test mysqld[5191]: ERROR: 1050  Table 'activ_tbl' already exists
 
Je pense que si je peux effacer la table qui existe déjà ça pourrait peut-être marché. Le problême c'est que je sais pas ou est cette table.
 
Une idée, une piste, je suis preneur.
 
Et merci si vous avez tout lu jusqu'ici ^^

Reply

Marsh Posté le 07-06-2007 à 16:29:35    

Bon ben pour ceux que ça intéresserait, j'ai réussi.
 
J'avais pas exactement les mêmes tables sur les deux serverus apparemment. Donc après avoir tout remis comme il fallait, j'ai appliqué ce tuto http://howtoforge.org/mysql_master_master_replication à deux ou trois trucs près et pouf magie !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed