Réplication SQL Maitre / Maitre - SQL/NoSQL - Programmation
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 :|
Marsh Posté le 06-06-2007 à 09:30:23
Hé ben heureusement que j'ai précisé que j'utilisais Mysql !
Marsh Posté le 06-06-2007 à 09:36:46
T'en fait pas, moi c'est pareil
Ceci dit, aucune idée de comment résoudre ton problème
"Bon courage !"
Marsh Posté le 06-06-2007 à 09:51:50
vous avez regardez du cote de MySQL cluster ?
http://www.mysql.fr/products/database/cluster/
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...
Marsh Posté le 06-06-2007 à 13:20:41
mySQL c'est un truc de tarlouse ,
bonne continuation
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. |
c'est la doc de la version 5.0 ça risque de pas marcher en version 4.x
bon courage
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.
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 ^^
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 !!!
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 !!!