Les deux sens de mySQL base de données de synchronisation entre hébergé et de la production locale du serveur

Si le scénario est le suivant:

J'ai une base de données mySQL sur un serveur local en cours d'exécution sur Windows 2008 Server. Le serveur est uniquement destinée à être accessible par les utilisateurs sur notre réseau et contient nos sociétés calendrier de production de l'information. J'ai ce qu'est essentiellement la même base de données en cours d'exécution sur un serveur hébergé sous linux, qui est destinée à être accessible en ligne, afin que nos clients puissent s'y connecter et mettre à jour leurs commandes.

Ce que je veux faire est une synchronisation bidirectionnelle des deux tables dans la base de données de sorte que les commandes sont à jour dans les deux bases de données, et un moyen de synchronisation de notre serveur à la, a accueilli l'un avec les données d'autres tables. L'extrémité avant de la base de données est écrit en PHP. Je vais dire ce que je suis en train de travailler avec de si loin, et j'apprécierais si les gens pouvaient laissez-moi savoir si je suis sur la bonne voie ou aboiements le mauvais arbre, et j'espère me pointer dans la bonne direction.

Ma première idée est de faire (à la fin de l'scripts PHP qui génèrent des modifications pour les tables de commandes) un export des modifications qui ont été apportées, peut-être en utilisant INSERT into OUTFILE OÙ compte = compte ou quelque chose de similaire. Cela permettrait de limiter la taille du fichier de petite plutôt que d'exporter l'ensemble de la table commandes. Ce que je suis accroché sur est de savoir comment (A) de l'exporter un fichier SQL plutôt que d'un fichier CSV (B) comment inclure les informations au sujet de ce qui a été supprimé ainsi que ce qui a été inséré (C) comment faire pour récupérer ce fichier sur l'autre serveur et d'exécuter l'instruction SQL.

Je suis à la recherche en SSH et PowerShell actuellement mais ne semble pas possible de formuler une vision solide de exactement comment cela va fonctionner. Je suis à la recherche dans des tâches cron et les tâches planifiées de Windows. Cependant, il serait mieux si d'une certaine façon les mises à jour tout simplement eu lieu à chaque fois qu'il y avait un changement, plutôt que sur un calendrier pour les garder synchronisés en temps réel, mais je ne peux pas tout à fait comprendre que l'on sort. Je veux pas être en cours d'exécution de la tâche planifiée/cronjob au moins une fois toutes les quelques minutes, bien que j'imagine que tout ce dont il aurait besoin pour faire est de vérifier s'il y avait des fichiers image qui devait être mis sur l'opposition de serveur, pas nécessairement la synchronisation de quoi que ce soit si rien n'avait changé.

Quelqu'un a déjà fait quelque chose comme ça? Nous parlons de modification/ajout/suppression de 1(min) à 160 lignes(max) dans les tableaux à la fois. J'aimerais entendre les pensées des gens à propos de ce truc que je continue à la recherche de mes options. Merci.

Aussi, juste pour préciser, je ne suis pas sûr si l'un de ces est vraiment un maître ou un esclave. Il n'est pas toujours la précision des données, c'est plus les données les plus récentes qui doit être dans les deux.

+1 Note Plus
Une autre chose me vient à l'esprit maintenant est d'ajouter à la fin de la commande de mise à jour de script sur un côté d'une autre config/connexion script pointant vers les autres serveurs de base de données, puis exécutez à nouveau exactement les mêmes requêtes, car ils ont des structures identiques. Maintenant que les sons de facile.... Pensées?

OriginalL'auteur Johnny Mnemonic | 2011-11-03