IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

[MSSQL] Synchroniser deux bases de données de structure différente


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut [MSSQL] Synchroniser deux bases de données de structure différente
    Bonjour,

    J ai deux bases de données différentes sur deux serveurs différents:
    - SAP-Like - MSSQL 2000 ... = "Master"
    - Stock - MSSQL 2008 SP1... = "Slave"

    Suivant les modifications du "Master", je dois mettre à jour des donnees sur le "Slave".

    J ai actuellement un script que je lance directement sur le "Slave" contenant un "While 1=1..." qui synchronise les données en recherchant la plus ancienne date de synchronisation.
    En complément, j ai un trigger sur le "Master" qui me synchronise une partie des données.

    J aimerai ne plus avoir mon script à lancer à la main car:
    - il risque de s arreter (exemple:le serveur Master est rebooté tous les dimanche)
    - je ne trouve pas la solution très "propre"

    Dans le passé, un script était lancé via le "Scheduled Task" plusieurs fois sur la journée. Le temps de synchronisation sur toutes les donnees peut fort varier. Le "Scheduled Task" ne me permet donc pas d etre optimale.
    Et pour d autres raisons, je ne veux plus ce genre de solution.


    Besoins:
    - un service qui démarre automatiquement avec le serveur.
    - que la synchronisation ne s arrete jamais. (si arreté: redémarrage automatique)

    J aimerai etre le plus basic possible. Si ce n est pas possible, je programmerai en .Net un service :S

    Merci d avance


    Détails techniques:
    - J utilise des Links-Servers + Alias
    - J utilise des Views "master" & "slave" avec la meme "interface qui me permettent de comparer facilement les données provenant des structures différentes... très facile d utilisation

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Combien y a t-il de tables à répliquer ?
    La réplication est-elle bilatérale ?

    Parce que vous avez différents moyens dont la réplication en passant par Service Broker....


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Combien y a t-il de tables à répliquer ?
    La réplication est-elle bilatérale ?

    Parce que vous avez différents moyens dont la réplication en passant par Service Broker....


    A +
    J'utilise des données provenant de 6 tables du "Master" que j insère dans une autre structure de 4 tables.
    Il y a toute une stratégie interne pour cette manipulation
    (la combinaison de de différents champs "Master" me donnera une seule valeur du coté "Slave")

    Du cote Master (ERP), j ai une structure de type arborescente que je ne dois pas avoir du cote Slave (Production).
    Lorsque le cote Master libère des elements pour la production, ceux ci doivent venir s insérer du cote Slave... ce qui correspond a un style de ToDoList pour les ouvriers. Lorsque les données changent du cote Master, les donnees doivent se rafraichir du cote de la production.


    Unidirectionel. Je dois cependant verifier que quelque chose qui a ete insére du cote Production a toujours un lien avec le systeme ERP/Master.
    Exemple: ERP genere la production d un element
    => celui ci est inséré dans la "ToDoList" pour les ouvriers.
    Ensuite le Systeme ERP annule tout => donnees effacées.
    => le systeme Slave doit bloquer la ligne "ToDoList" n ayant plus de reference/ERP.

    Actuellement mon script boucle deux fois:
    -boucle sur les données ERP a insérer
    -boucle sur les "ToDoList" à rafraichir (voir bloquer)

    Suis je assez clair? :s

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Pas vraiment, mais vu que les flux ne sont pas bilatéraux (une même lignes est mise à jour en aler et en retour) alors Service broker semble être la solution la plus efficace.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Service broker: jusqu a maintenant je ne savais pas exactement ce que c etait.
    J ai lu l article "A Quoi sert le Service Broker" (http://blog.developpez.com/sqlpro/p7...ervice-broker/)

    Il est vrai qu utiliser ce principe pourrait fort bien convenir à ma situation.
    Je ne peux pas me permettre de changer le concept actuel immediatement... mais je pense bien qu il y aura une mise à jour en 2010 dans ce sens.

    Mon problème actuel c est que j ai de trop longue transaction (ma boucle travail immediatement sur un groupe de rows (plus ou moins grand!)).
    Le Service broker devrait me permettre d avoir de tres courte transaction.

    Immédiatement je vais utiliser un "flag" de synchronisation:
    - je monte ce "flag" sur les rows qui nécessite un refresh
    - ensuite une boucle passera sur ces rows et fera de tres petites transactions (le flag sera alors redescendu)


    PS: Merci SQLpro pour le support et la documentation. Il y a quelques moins j ai lu en détail les articles sur l optimisation et la configuration MsSql (avant l achat d un nouveau Server)... ca m a ete vraiment tres utile!

Discussions similaires

  1. Synchroniser deux bases de données
    Par mouchkar dans le forum Administration
    Réponses: 3
    Dernier message: 08/02/2011, 11h53
  2. synchroniser deux bases de données
    Par yacine.dev dans le forum MySQL
    Réponses: 5
    Dernier message: 11/11/2010, 01h42
  3. Synchroniser deux bases de données Access 2003?
    Par js8bleu dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/04/2010, 09h52
  4. Synchroniser deux bases de données
    Par whitespirit dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/11/2008, 14h01
  5. Synchronisation deux base de données
    Par musmus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/07/2008, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo