Précédent   Forum du club des développeurs et IT Pro > Bases de données > Décisions SGBD > Débuter
Débuter Forum d'entraide : Comment débuter en base de données ? Tutoriels SGBD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/07/2011, 12h54   #1
belgariel
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 52
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 52
Points : 11
Points : 11
Par défaut synchroniser 2 bases de données différentes

Bonjour,

Je dois synchroniser 2 bases de données différentes (juste une partie des tables). L'une des bases utilise MS SQL et l'autre MySql et les 2 disposent d'une API permettant d’interagir avec elles depuis l’extérieur.

Les 2 bases de données sont utilisées chacune par un logiciel différent et peuvent donc être modifiées a tout instant indépendamment de l'autre. Le problème que je vois avec ça est qu'une donnée commune aux 2 bases peut être modifiée au même moment sur les 2 bases de manière différentes. Par exemple si on a une donnée "a" sur les 2 bases, elle peut être modifiée en "b" sur une et en "c" sur l'autre.

J'imagine qu'il y a une méthode pour régler ce problème et faire une synchronisation correcte mais je ne sais pas laquelle. En cherchant je suis tombé sur un article qui si j'ai bien compris indique que l'on peut utiliser un middleware mais je ne vois pas trop comment.

Quelqu'un pourrait-il m’éclairer sur la "bonne manière" de faire cette synchronisation ?
belgariel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 08h44   #2
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 074
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 074
Points : 21 669
Points : 21 669
Il est dommage que vous ayez mélangé MySQL et SQL Server car MS SQL Server dispose de la réplication de fusion en standard. Mais ceci n'est pas possible avec MySQL. Il vous faudra donc tout coder à la main, y compris la gestion de résolution des conflits de réplication....

Bon courage !!!!!!!!!!!

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 10h46   #3
belgariel
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 52
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 52
Points : 11
Points : 11
Merci pour la réponse.

Effectivement ça aurait été plus simple avec 2 bases de données MS SQL. Mais malheureusement pour moi tout était déjà en place quand je suis arrivé (je suis stagiaire).

Sauriez-vous s'il existe une documentation ou quelque chose reprenant les points a ne pas oublier quand on veut coder cela ?

Ce n'est pas que je suis feignant et que je ne veuille pas y réfléchir mais je n'ai pas beaucoup de temps, je termine mon stage dans 3 semaines en comptant celle-la. Et vu ce qui pourrait se passer sur la base si j'oublie de prendre en compte quelque chose je préfère mettre toutes les chances de mon coté.
belgariel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 09h48   #4
michaud_fr
Futur Membre du Club
 
Homme
Expert Base de Données
Inscription : janvier 2009
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Expert Base de Données

Informations forums :
Inscription : janvier 2009
Messages : 16
Points : 19
Points : 19
Salut,

Ton problème est assez classique et c'est vrai que MS-SQL fournit une réplication par fusion.

Le plus compliqué dans la réplication en fusion c'est de définir les règles lorsque justement on modifie un enregistrement en même temps. (Qui à raison, le dernier, le premier, un peu des deux...)

Il faut aussi se poser la question fonctionnellement si cela à du sens? Fusion une fois toute les nuits, Une base maitre, l'autre esclave, ...

Pour ma part j'évite totalement les fusions de base, car il y a toujours des cas tordu à gérer.
michaud_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h36.


 
 
 
 
Partenaires

Hébergement Web