La synchronisation des données de la table dans les bases de données

J'ai une table qui enregistre sa ligne d'insertion/mise à jour date et l'heure sur un champ.

Je veux synchroniser les données dans ce tableau à un autre tableau sur un autre serveur de base de données. Deux db serveurs ne sont pas connectés et que la synchronisation est une façon (maître/esclave). A l'aide du tableau des déclencheurs n'est pas adapté

Mon flux de travail:

  • - Je utiliser un mondial last_sync_date paramètre de requête et de tableau de Maître pour les
    le changement de/enregistrements insérés
  • Sortie les lignes obtenues à xml
  • Parse le xml et mettre à jour le tableau de l'Esclave à l'aide de mises à jour et des inserts

La complexité du problème augmente lorsque vous traitez avec des enregistrements supprimés de la table Maître. Pour attraper les enregistrements supprimés je pense que je dois maintenir une table de journal pour les déjà inséré des dossiers et l'utilisation de sql "NON". Cela devient un problème de performance lorsque le traitement de grands ensembles de données.

Ce qui serait une alternative de flux de travail traitant de ce scénario?

  • Et la base de données que vous utilisez? (maître et de l'esclave?)
  • Actuellement à l'aide de MsSql pour maître et mysql en tant qu'esclave, donc je ne pense pas qu'une base de données spécifique de la solution permettra d'
  • Jetez aussi un oeil à cette légèrement lien en.wikipedia.org/wiki/CAP_theorem
  • La formulation de la question ne correspond pas à son contenu et est suspect pour moi. Si les serveurs ne sont pas connecté, alors votre seule option est un fichier d'exportation vers un disque amovible et transférer les données de cette façon, sinon ils sont reliés d'une certaine manière. Connecté inclut le web, vous avez des options comme les déclencheurs disponibles pour vous. La seule raison pour laquelle vous ne devriez pas être en mesure de les utiliser est un DBA de le nier et je n'ai jamais rencontré un administrateur de base qui permettraient de refuser l'utilisation d'un déclencheur si elle s'est avérée bénéfique. Restrictions de pare-feu et peut être surmonté que si vous faites cela de manière légitime.
  • Je me sens pour vous que j'ai offert la solution d'un message de la file d'attente parce qu'il a marqués de la question printemps-lot. À mon humble avis, Soit il devrait l'utilisation réelle de la réplication ou la file d'attente de messages. Il a également inquiets au sujet d'un problème de performance qui n'est même pas un problème (c'est à dire: PAS DE problème).
  • Génial! J'ai fait un commentaire sarcastique 3 jours concernant les machines n'étant pas "connecté", plus d'exagérer les choses. S'il vous plaît dites-moi ce que vous avez reconstitué dans votre tête qui permettrait d'invoquer le hasard commentaire.
  • Quoi que je recommande à ce mec... il a de gros problèmes 😉
  • avez-vous jamais lu sur le non-sens de mettre déclencheurs à l'aide de db liens? Qu'advient-il si la connexion va et qu'ils ont invalidé? Cette tâche de synchronisation, comme clairement indiqué dans la question, doit être un processus qui ne sera pas nuire à l'entreprise.
  • Le processus décrit sur la question est sur l'air, nous l'utilisons avec succès; mais puisque c'est un système d'héritage, j'ai ouvert cette question. Ainsi, le problème de performance "est" un problème.
  • Je viens vous donner de la merde. Pour le NOT IN vous avez juste à faire un temporaire id de tableau. Voir ma réponse: stackoverflow.com/questions/2861230/... et stackoverflow.com/a/12927312/318174 . Le seul problème est qu'il semble que vous ne voulez pas le faire toute db changements... pouvez-vous faire tmp id de tableau?
  • Je suis vraiment heureux avec votre proposition d'aide de files de messages. Je l'ai mentionné un "journal de table" dans la question, c'est le tmp de l'id de tableau.
  • Où ai-je suggérer à l'aide de déclencheurs pour cette solution? Oh, c'est vrai, je n'ai pas. Sérieusement l'homme, y renoncer.