Question

Je suis actuellement en train de configurer la réplication mySQL.

J'ai besoin d'obtenir des données de trois endroits.

Par exemple, j'ai

BESOIN DE CES DONNÉES
serveur1 - base de données1
serveur2 - base de données2
serveur3 - base de données3

CONSERVER LES DONNÉES ICI
serveur4 - base de données4

J'en ai besoin pour créer des rapports.

J'ai lu que vous ne pouvez pas vous connecter à plus d'un maître. Cela étant dit, je vais essayer une topologie "master-chain" parce que je pense comprendre ce qui se passe avec celle-ci

Le flux de données ressemblera donc à ceci

serveur1 -> serveur2 -> serveur3 -> serveur4

serveur2 et serveur3 auront des moteurs de stockage blackhole pour les bases de données répliquées, nous ne stockons donc pas réellement les informations sur ces serveurs mais les informations sont toujours enregistrées dans le binaire -log pour que toutes les instructions soient diffusées pour maintenir server4 à jour.

Ai-je bien compris?

Était-ce utile?

La solution

Cela fonctionnera, mais ce n'est pas la meilleure implémentation et pourrait bien vous causer des problèmes à l'avenir. Avant d'ajouter une nouvelle table sur server1 ou server2, vous devrez créer les tables BLACKHOLE sur les serveurs en aval, sinon vous vous retrouverez avec les vraies tables. Je suppose que vous pouvez contourner ce problème en écrivant un script qui s'exécute sur server2 et server3 chaque nuit qui recherche toutes les tables non blackhole et exécute un ALTER TABLE pour les modifier en tables BLACKHOLE.

Avez-vous besoin que les données de rapport soient parfaitement à jour? Sinon, je recommanderais de rejeter toute cette idée et de simplement extraire régulièrement les données des données dans server4 si nécessaire.

modifier: (le lendemain) Après réflexion, je pense que si c'était moi, je chercherais probablement à exécuter trois instances MySQL distinctes sur le serveur4 chacune d'elles comme un esclave direct de l'un des serveurs.

En utilisant cette approche, il n'y a pas de chaîne de réplication, la configuration de la réplication est beaucoup plus simple / normale et chaque paire de bases de données est autonome.

Il est facile et assez normal d'exécuter plusieurs instances MySQL, il existe même un outil appelé mysqld_multi qui vous aidera à le configurer.

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