2011-03-21 5 views
0

J'ai actuellement ce scénario,Mysql réplication Question

  1. multiple client de bureau avec base de données mysql installé sur leur machine Windows.
  2. besoin de synchroniser sur un serveur hébergé sur le Web à des fins de reporting.
  3. juste besoin de faire une synchronisation à sens unique (client à web).
  4. client ip est en constante évolution car ils utilisent standard adsl sans ip de correction.
  5. chaque client db se synchronisera sur un serveur autonome sur le serveur (hébergé sur le Web).
  6. Cette synchronisation peut-elle s'exécuter sur le planificateur? comme toutes les 3 heures depuis une fois.

Je pense à l'utilisation de la réplication mysql, mais j'ai quelques questions sur la façon de configurer cela. dois-je configurer cela comme maître d'esclave? ou maître à maîtriser? Je suppose que le client sera maître et le serveur sera esclave, puisque le serveur est seulement utilisé à des fins de reporting, mais en vérifiant beaucoup de réplication mysql, il semble que la réplication est initiale de l'esclave? (je vois qu'il y a des paramètres comme master-host = ip sur le serveur esclave) cela va à l'encontre du but du serveur ...

Répondre

0

Peut-être est-ce totalement faux compte tenu de certains des éléments que vous avez Je le mentionne (esclave/maître/etc), mais dans une application que je développe, j'ai une architecture similaire avec la source unique alimentant plusieurs clients d'IP inconnue/dynamique. Ma solution consistait à inclure un autre champ avec un horodatage de la dernière mise à jour de cette ligne, puis à synchroniser, les clients recherchaient leur db local pour le MAX dans cette colonne, et l'envoyaient en tant que variable à un service web qui retourne toutes les lignes un horodatage plus récent. Le client analyse ensuite les données de réponse et les remplace par leur db locale, de sorte que les anciennes données sont écrasées. Un détail que je n'ai pas abordé (car mon scénario n'en a pas besoin) est comment communiquer qu'un élément a été supprimé ... peut-être lorsqu'une ligne est supprimée, une entrée est faite dans une autre table avec la ligne primaire id, et l'horodatage de la suppression, puis le service Web pourrait inclure un tableau de toutes les lignes avec un horodatage plus récent de cette table.