2011-03-12 3 views
3

Quel est, s'il y a, un bon moyen de garder une ligne dans la séparation des bases de données (éventuellement sur des machines différentes) en synchronisation?Comment conserver la ligne dans plusieurs bases de données mysql en synchronisation? De préférence avec la doctrine

Pour plus de clarté. J'ai plusieurs bases de données mysql qui partagent une table utilisateur avec le même schéma. Il existe une base de données "maître" qui possède son propre schéma, mais qui contient la table utilisateur qui contient tous les enregistrements utilisateur. Ensuite, il existe plusieurs bases de données "esclaves" qui partagent pour la plupart le même schéma, qui contient également la table utilisateur (avec le même schéma) avec des sous-ensembles d'enregistrements d'utilisateurs.

Lorsqu'une mise à jour est faite à une instance de l'enregistrement de l'utilisateur dans une base de données que je veux que le changement propagé à trop tous les cas de cet enregistrement d'utilisateur dans toutes les bases de données, il est dans.

J'utilise MySQL, php5 .3, et doctrine 1.2.x pour un orm, s'exécutant sur des serveurs VPS ubuntu.

Répondre

1

Ne pas essayer de le faire en utilisant PHP ou Doctrine: chercher à MySQL replication pour garder les tables de base de données esclave en phase avec le maître

2

On dirait que vous êtes à la recherche MySQL replication et spécifique, la configuration replicate-do-table option pour limiter les bases de données esclaves à ne s'occuper que d'une ou plusieurs tables spécifiques du maître.

+0

cela me permettrait-il d'écrire directement aux esclaves et de le propager au maître? et vice-vera? – xzyfer

+0

Cela nécessiterait une boucle de réplication multimaître. Le serveur A serait maître du serveur B, qui serait le maître du serveur C, qui serait le maître du serveur A. Il peut être étendu dans le reste de l'alphabet, mais il peut être difficile à gérer et à maintenir. [Cet article de 2006] (http://onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html) semble toujours assez précis, et couvre les problèmes collants avec l'auto-incrémentation. – Charles

+0

Pour être clair, mon employeur utilise le multi-maître en production pour synchroniser une application locale avec une version d'un autre site. Jusqu'à ces 2-3 dernières années, MySQL corrompait fréquemment le journal binaire, ce qui nécessite un important effort de reconstruction manuelle. Bien que le mode multi-maître soit * possible *, à moins que vous n'ayez un suivi à temps plein, vous risquez d'avoir mal. Les erreurs de réplication se produisent tous les 2-3 mois maintenant, avec des accès aléatoires d'erreurs SQL illogiques et non reproductibles arrêtant la boucle. Je ne sais pas si c'est de notre faute, la faute d'OpenVPN, ou la faute de MySQL. – Charles

Questions connexes