2011-11-01 7 views
0

J'essaie de répliquer des données entre 2 bases de données MySQL. Le problème est seulement certaines lignes doivent être transférées au deuxième serveur MySQL en fonction d'un critère spécifique.répliquer des données spécifiques entre 2 bases de données mysql

J'ai 2 serveurs MySQL. Le premier est intranet seulement, il y a une application qui lit/écrit. Le deuxième serveur MySQL est en ligne et l'application qui s'y connecte est en lecture seule.

Je dois trouver un moyen d'obtenir les données du premier serveur à la seconde en fonction de critères spécifiques (certaines lignes sont étiquetées comme privées et ne devraient pas être synchronisées). J'ai essayé de le faire avec un trigger sur le premier serveur (trigger sur insert/update) mais j'ai trop de tables, ça prend beaucoup de temps pour le faire comme ça.

Quelles approches ai-je? le dumping de l'ensemble des données n'est pas une option car il y aura beaucoup d'enregistrements et le serveur en ligne ne peut pas se permettre de se déconnecter juste pour obtenir l'information. Ajoutez à cela que tous les enregistrements ne sont pas destinés à un usage public.

+0

avez-vous besoin de données à synchroniser en temps réel ou vous pouvez supporter quelques minutes de décalage? – m0ntassar

+0

quelques minutes de décalage est très bien. – Ali

Répondre

0

1 - réplication désactiver 2 - sur l'intranet, créer une base de données vide et une vue basée sur une requête qui montre exactement les lignes que vous souhaitez répliquer sur votre serveur Internet 3 - reproduire la nouvelle base de données (celle contenant - sur votre serveur internet, vous pouvez croner un script qui insère les nouvelles lignes dans la table désirée, pensez à utiliser les dumps et LOAD DATA IN FILE, ça devrait aller très vite .

Questions connexes