Réplication complète de la base de données MySQL ?Des idées ?Que font les gens?

StackOverflow https://stackoverflow.com/questions/3798

  •  08-06-2019
  •  | 
  •  

Question

Actuellement, j'ai deux serveurs Linux exécutant MySQL, l'un assis sur un rack juste à côté de moi sous un canal de téléchargement de 10 Mbit/s (serveur principal) et un autre à quelques kilomètres sur un canal de téléchargement de 3 Mbit/s (miroir).

Je souhaite pouvoir répliquer les données sur les deux serveurs en continu, mais je me suis heurté à plusieurs obstacles.L'un d'eux étant, sous les configurations MySQL maître/esclave, de temps en temps, certaines instructions tombent (!), ce qui signifie ;Certaines personnes se connectant à l'URL miroir ne voient pas les données dont je sais qu'elles se trouvent sur le serveur principal et vice versa.Disons que cela se produit sur un bloc de données significatif une fois par mois, donc je peux vivre avec et supposer qu'il s'agit d'un problème de "paquet perdu" (c'est-à-dire, Dieu sait, mais nous compenserons).

L'autre problème récurrent le plus important (et ennuyeux) est que, lorsque, pour une raison quelconque, nous effectuons un téléchargement ou une mise à jour (ou un redémarrage) majeur à une extrémité et que nous devons rompre le lien, puis LOAD DATA FROM MASTER ne fonctionne pas et je dois vider manuellement à une extrémité et télécharger à l'autre, une tâche assez difficile de nos jours pour déplacer environ 0,5 To de données.

Existe-t-il un logiciel pour cela ?Je sais que MySQL (la "société") propose cela comme un service TRÈS coûteux (réplication complète de la base de données).Que font les gens là-bas ?De la façon dont il est structuré, nous effectuons un basculement automatique où si un serveur n'est pas opérationnel, l'URL principale est simplement résolue vers l'autre serveur.

Pas de solution correcte

Autres conseils

Chez Percona, nous proposons des outils gratuits pour détecter les écarts entre le maître et le serveur et pour les synchroniser en réappliquant des modifications minimes.

Porte dorée est une très bonne solution, mais probablement aussi coûteuse que le réplicateur MySQL.

Il suit essentiellement le journal et applique les modifications en fonction de ce qui est engagé.Ils prennent en charge la réplication bidirectionnelle (une tâche difficile) et la réplication entre systèmes hétérogènes.

Puisqu'ils fonctionnent en traitant le fichier journal, ils peuvent effectuer une réplication distribuée à grande échelle sans affecter les performances sur la ou les machines sources.

Je n'ai jamais vu de déclarations abandonnées, mais il existe un bug dans lequel des problèmes de réseau pourraient provoquer une corruption du journal de relais.Assurez-vous de ne pas exécuter MySQL sans ce correctif.

Documenté dans les journaux des modifications 5.0.56, 5.1.24 et 6.0.5 comme suit :

   Network timeouts between the master and the slave could result
   in corruption of the relay log.

http://bugs.mysql.com/bug.php?id=26489

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top