MySQL Replication Multi - maitre plus de 10 serveurs

MySQL Replication Multi - maitre plus de 10 serveurs - SQL/NoSQL - Programmation

Marsh Posté le 12-03-2008 à 13:56:11    

Salut à tous !
je suis un "nouveau" sur le forum.
 
je cherche le moyen de repliquer un base sur plusieurs serveurs, en piochant sur le net j'ai trouvé un tutorial sur la replication Maitre à Maitre et aussi (et surtout) la replication sur plusieurs serveurs:
 
- il consistait à repliquer une base sur 3 serveurs monté en cerlce, ce qui fait que :
  ServeurA est Maitre du ServeurB qui est Maitre du ServeurC qui est Maitre du ServeurA
 
j'ai testé et ça fonctionne Hyper-bien jusqu' à ce que je me retrouve avec 11 serveurs:
 
"l'idée du tuto etait de faire (au niveau du fichier de configuration) :
 
auto_increment_increment =10
Serveur1 : auto_increment_offest=1
Serveur2 : auto_increment_offest=2
Serveur3 : auto_increment_offest=3
 
ainsi il ne devrait pas y avoir de conflit entre les identifiants provenant de chaque serveur
( les Id du serveur1 sera : 1, 11, 21, 31 etc... les Id du serveur2 sera : 2, 12, 22, 32 etc... les Id du serveur3 sera : 3, 13, 23, 33 etc...)
 
mais lorsqu'on tombe sur le 11eme serveur, ça donne :
Serveur1 : auto_increment_offest=11 et les ID seront donc : 11, 21, 31 etc... IDEM QUE CEUX DU SERVEUR1
 
est ce que quelqu'un a une solution à me proposer pour resoudre ce probleme  

Reply

Marsh Posté le 12-03-2008 à 13:56:11   

Reply

Marsh Posté le 12-03-2008 à 14:38:03    

La meilleure solution aurait été de se garder une marge de manœuvre pour éviter ce problème.
La solution la plus simple à mettre en oeuvre dans ce genre de cas, c'est de multiplier le auto_increment_increment par un entié (pour le mettre à 20 ou 30 ou ...) ainsi que les auto_increment_offest et les id (ne pas oublier les clés étrangères correspondantes si elles ne sont pas modifié automatiquement) déjà existant, le tout par le même multiplicateur.
Il est possible de faire la même chose sans modifier les id déjà existant mais il faudra au moins régler les indices d'autoincrémentation de chaque table sur chaque serveur pour éviter qu'il ne se produise une collision d'id malgré les changements d'auto_increment_offest (je ne sais pas si mysql modifie de lui même l'indice du prochain autoincrément quand on modifie le auto_increment_increment ou le auto_increment_offest).

Reply

Marsh Posté le 14-03-2008 à 06:32:57    

merci de m'avoir repondu !!
 
d'autre gars m'ont proposé de mettre auto_increment_increment sur 100 ... j'ai verifié et jusqu'ici pas de doublon  
 
exemple :
 
Id du Serveur1 : 101, 201, 301, 401 ...
Id du Serveur9 : 109, 209, 309, 409 ...
Id du Serveur10 : 110, 210, 310, 410 ...
Id du Serveur11 : 111, 211, 311, 411 ...
 
nouveau probleme : le type INTEGER risquerait de ne plus supporter les données au bout de quelque lignes d'enregistrement !!

Reply

Marsh Posté le 14-03-2008 à 09:59:16    

Personnellement, pour les identifiants j'utilise quasiment toujours le type bigint. Le seul cas où j'utilise de simple integer c'est quand je suis sur et certain que la table n'aura que quelques enregistrements : par exemple pour le titre d'une personne (monsieur, madame, docteur, maitre ...)

Reply

Marsh Posté le 23-08-2012 à 16:41:26    

SVP stormfire peux-tu vous m'envoyer le tuto que tu utilise pour faire circuler les maitre? car moi j'en ai besoin que pour 4 bases pas 11 loll
Merci par avance

Reply

Marsh Posté le 23-08-2012 à 16:41:52    

SVP stormfire peux-tu vous m'envoyer le tuto que tu utilise pour faire circuler les maitre? car moi j'en ai besoin que pour 4 bases pas 11 loll
Merci par avance

Reply

Sujets relatifs:

Leave a Replay

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