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

Réplications SQL Server Discussion :

Synchronisation de données, la bonne solution ? [2016]


Sujet :

Réplications SQL Server

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Synchronisation de données, la bonne solution ?
    Bonjour à tous,

    J'ai besoin de conseils et d'info pour le choix des armes à utiliser.

    Voici le context :
    J'ai 2 bases de données différentes (sur des instances différentes) en SQL Server 2016. BDD 1 est utilisé par le système 1 et BDD 2 par le système 2. (Je simplifie, ça évite d'embrouiller tout le monde )

    Je dois synchroniser les données entre plusieurs tables de ces 2 bdd mais j'ai plusieurs cas différents :

    - Cas 1 : La table A est utilisée dans le système 2 en lecture/écriture et en lecture par le système 1. Les tables sont identiques (même structure, même nom).

    - Cas 2 : La table B est utilisée dans le système 1 en lecture/écriture et en lecture/écriture par le système 2. Les tables n'ont pas le même nom et la structure est quelque peu différente. Toutes les colonnes ne sont pas à mapper : table B de la BDD 1 possède une dizaine de colonne et son équivalent nommé table "B_Bis" de la BDD 2 n'en possède que 5. Une de ces colonnes est de type varchar(10) dans la table B et de type bit dans la table B_Bis (je connais les valeurs correspondantes pour le passage de la table B à la table B_Bis). La synchro doit être bidirectionnelle

    - Cas 3 : Même chose que le cas 2 mais seulement en lecture par le système 2 donc pas de synchro bidirectionnelle.



    On me propose l'utilisation de plusieurs techniques différentes (en parenthèse, les infos que j'ai pu collecter) :
    - La "Réplication Transactionnelle" (nécessite un serveur dite de "Publication")
    - L'utilisation directe d'Insert/Update... en T-SQL (Les données peuvent être transformées donc utilisable pour tous mes cas mais pose des problèmes en cas de connection défaillante ou de serveur indisponibles, pas d'asynchrone)
    - SSIS (Les données peuvent être transformées donc utilisable pour tous mes cas, adapté aux lourdes charges)
    - Service Broker (Asynchrone - utilisation d'au moins 2 queues, adapté aux lourdes charges, les données peuvent être transformées, Le message envoyés est un Xml donc facilement maléable)


    Pour le Cas 1, le DBA propose d'utiliser la Réplication Transactionnelle et pour les cas 2 et 3, il propose d'utiliser "Service Broker". Il n'est pas fan d'SSIS.
    On a besoin d'une solution asynchrone qui peux gérer de lourdes charges. La synchronisation sera lancée toutes les 10 minutes (grand max).



    Mes questions :
    - Peut-on faire de la transformation de donnée lorsqu'on utilise la "Réplication transactionnelle" ?
    - Quel que soit la solution, le faite que les tables n'ai pas la même structure ni le même nom pose t-il un problème ?
    - Suivant les cas, qu'utiliseriez vous ?
    - Comment gérer le bidirectionnelle ?
    - Comment savoir si une row est à jour ou non ?
    - Dans chacun des cas, peut-on encrypter les données ?


    Désolé pour le pavé. J'espère être relativement clair dans mes explications. Merci d'avance pour les réponses.

    Cordialement,
    Mel

  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 768
    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 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par meldeve Voir le message
    Pour le Cas 1, le DBA propose d'utiliser la Réplication Transactionnelle et pour les cas 2 et 3, il propose d'utiliser "Service Broker". Il n'est pas fan d'SSIS.
    On a besoin d'une solution asynchrone qui peux gérer de lourdes charges. La synchronisation sera lancée toutes les 10 minutes (grand max).
    Votre DBA vous a proposé la bonne solution.
    Mes questions :
    - Peut-on faire de la transformation de donnée lorsqu'on utilise la "Réplication transactionnelle" ?
    Non
    - Quel que soit la solution, le faite que les tables n'ai pas la même structure ni le même nom pose t-il un problème ?
    Oui et non
    - Suivant les cas, qu'utiliseriez vous ?
    Ce qui vous a été dit
    - Comment gérer le bidirectionnelle ?
    Il faut un tiers de réconciliation, car il y aura inévitablement des conflits et donc identifier d’où vient la ligne et en quelle version elle est
    - Comment savoir si une row est à jour ou non ?
    Se référer au tiers
    - Dans chacun des cas, peut-on encrypter les données ?
    Oui, mais ça va devenir très lourd à gérer


    Désolé pour le pavé. J'espère être relativement clair dans mes explications. Merci d'avance pour les réponses.

    Cordialement,
    Mel
    Pas de bleme

    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
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Un grand merci SQLPro pour toutes les réponses apportées.

    Hier, à la grande réunion sur le sujet (à laquelle mon équipe n'a pas été conviée), il a été décidé que ce serait... (roulement de tambour)... SSIS pour tous les cas. Mon client préfère confier cette tache à son DBA (ce qui me parait être le choix le plus logique). Mon équipe reste en "soutiens" et en "référence" vue qu'on a créé et sécurisé la BDD (en plus de l'appli).

    J'aurais quand même appris des choses utiles sur ce sujet.

    Bonne journée à tous et encore merci SQLPro,
    Mel

  4. #4
    Membre à l'essai
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Si quelqu'un à un bon tuto à me conseiller pour la création de SSIS avec VS 2017 entre 2 bases de données SQL Server, je suis preneuse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/02/2009, 22h55
  2. SPRING+STRUTS+HIBERNATE. Une bonne solution ?
    Par ollivier dans le forum Struts 1
    Réponses: 9
    Dernier message: 10/04/2006, 13h16
  3. [JAR]Bonne solution ?
    Par Baptiste Wicht dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 30/01/2006, 13h08
  4. [Algnement dans StringGrid] Voici la Bonne Solution
    Par touhami dans le forum Composants VCL
    Réponses: 1
    Dernier message: 07/11/2005, 13h35
  5. [Débutant] Bonne solution ?
    Par Machjaghjolu dans le forum Débuter
    Réponses: 23
    Dernier message: 17/09/2004, 09h51

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