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

MS SQL Server Discussion :

Synchronisation entre plusieurs bases de données (2 à 2, Globale et Locale)


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 106
    Points : 85
    Points
    85
    Par défaut Synchronisation entre plusieurs bases de données (2 à 2, Globale et Locale)
    Actuellement je suis sur un projet où j'aurai besoin de synchroniser deux bases de données. Une Globale (SQL SERVER EXPRESS) et plusieurs bases de données locales (LocalDB de SQL SERVER).

    - Donc ma 1ère réflexion c'est de développer un moteur de synchronisation adapter a mon besoin.
    - J'ai chercher sur le web et j'ai trouver qu'il existe une fonctionnalité dans SQL SERVER pour la synchronisation des la bases de donnée "REPLICATION".
    * J'ai pas vraiment compris exactement tous les fonctionnalités qui m'offre la REPLICATION Si quelqu’un peut me briffer en quelques lignes ou avec quelques lien (De ce que j'ai lu sur le web je n'est pas bien compri).


    Mes besoins:

    * La synchronisation se feras dans les deux sens. (GLOBALE=>LOCALE & LOCALE=>GLOBALE).
    * Les base de donnée locales serons alimenté depuis la bd globale.
    * Les base de donnée locales ne sont pas identiques en terme de donnée mais ont le même schéma.
    * Les base de données locales ne sont pas une copie exacte de la base de donnée globale ou d'une partie de celle-si. (Globale.TableX ~ Local.TableX (sur la locale y'aurai des colonnes en plus)).
    * Les base de données locale vont garder les données téléchargés même après leurs suppression de la bd Globale, chaque 6 mois par exemple. Car chaque 6 mois, y'aurai des données jugés intitules. (PS: Ce besoin n'est pas pour moi d'une grande priorité, c'est une option de raffinement la base de données globale)


    Info:
    Je développe en C# .NET4, SQL SERVER 2012 EXPRESS (EXPRESS POUR LE MOMENT)


    MERCI d'avoirs lu ma question et je vous remercie d'avance d'avoir essayé de comprendre mes besoins. S'il y aurai la moindre indication que je puissent vous me précisé.

    MERCI ENCORE

  2. #2
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 106
    Points : 85
    Points
    85
    Par défaut
    Aucune suggestion ?

  3. #3
    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
    SQL Server dipose de 4 systèmes différents de réplication des données :
    1) réplication transactionnelle
    2) réplication transactionnelle point à point
    3) réplication par capture instantanée
    4) réplication de fusion
    Vous pouvez aussi utiliser Service Broker pour ce faire.
    Vous pouvez aussi utiliser Change Tracking ou Change Data Capture (CDC)
    Enfin, vous pouvez la faire manuellement via des déclencheurs....
    ...

    Mais, l'une des problématique sera votre base Express. En effet, la version express étant limitée, vous ne pourrez pas utiliser toutes les solutions proposées...

    La question est de savoir quel est l'aspect fonctionnel (pour quoi faire, sur quelles données, avec quel volume...) de votre réplication. En effet sans cette description il est difficile de vous orienter

    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/ * * * * *

  4. #4
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 106
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par SQLpro Voir le message

    La question est de savoir quel est l'aspect fonctionnel (pour quoi faire, sur quelles données, avec quel volume...) de votre réplication. En effet sans cette description il est difficile de vous orienter

    Merci de vous intéressé.

    - Besoin de synchroniser pour un accès hors ligne.
    - Le volume dépend de la date de dernière mise a ajour de la base de données locale.
    - J'ai besoin de synchroniser quelque données qui son dans un table de la globale. Au niveau de la locale, ces donnée la vont être utile pour généré d'autre donnée sur le même tableau, pour que l'accès soit rapide.


    J'esper que j'était explicite, s'il y'a la moindre explication que je doit ajouter n'hésitez surtout pas. Merci encore

  5. #5
    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
    Citation Envoyé par nadjibnet Voir le message
    Merci de vous intéressé.

    - Besoin de synchroniser pour un accès hors ligne.
    - Le volume dépend de la date de dernière mise a ajour de la base de données locale.
    - J'ai besoin de synchroniser quelque données qui son dans un table de la globale. Au niveau de la locale, ces donnée la vont être utile pour généré d'autre donnée sur le même tableau, pour que l'accès soit rapide.


    J'esper que j'était explicite, s'il y'a la moindre explication que je doit ajouter n'hésitez surtout pas. Merci encore
    1) non vous n'avez pas du tout été explicite
    2) "Besoin de synchroniser pour un accès hors ligne." on ne peut pazs synchrioniser si les sytèmpes ne sont pas connectés !

    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/ * * * * *

  6. #6
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 106
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    1) non vous n'avez pas du tout été explicite
    2) "Besoin de synchroniser pour un accès hors ligne." on ne peut pazs synchrioniser si les sytèmpes ne sont pas connectés !

    A +
    INTERNET N'EST PAS TOUJOURS DISPONIBLE.


    Donc je reformule.

    Voila la tache principale du moteur de synchronisation que je veux développer:

    *Le système a besoin de télécharger les données qui sont dans la base de donnée globale, par la suite chaque donnée téléchargé va être enrichie (Avec des donnée publiés de GOOGLE) et après cela les insérer dans la base donnée locale. Pour ne pas a faire appel au donnée publier de google a chaque fois (Gagner en performance).


    Après, il y a aussi d'autre données (d'autres tables) qui sont sur le serveur et qui doive êtres synchronisé a chaque fois que Internet est disponible. (Sync dans les deux sens).




    Note: - La donnée Globale et les base de données locales n'ont pas exactement le même schema (Une base de données locale a des attribue en plus.).
    - Les bases de données locales ont un schema identique mais différent en données.



    J’espère que cette fois si j'étais impeu plus explicite. Merci encore de vous intéresser.

  7. #7
    Membre actif
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 141
    Points : 210
    Points
    210
    Par défaut Synchro
    Bonjour,

    je comprend votre problématique, j'ai eu la même,
    vous allez devoirs synchronisé les table manuellement (utilisé les datatable plutôt que entity ce sera plus simple)
    ensuite si vous avez des relations vous devrez tenir compte de celle ci et procéder de cette manière

    - Ajouter toute les lignes de toute les tables (dans l'ordre croisant des relations)
    - Modifier toute les lignes de toutes les tables (peut importe l'odre des relations)
    - Supprimer toute les lignes de toute les tables (dans l'ordre des croissant des relation)

    Si vous avez des colonne unique vous devrez exécuter avant cela un supprimer sur ces lignes (en espérant quelle non pas de relation avec des lignes qui ne sont pas supprimée)

    J'ai développer un logiciel qui permet de faire cela, je pense le mettre a dispo d'ici 1 mois ou 2. mais ce sera un logiciel et pas une dll, donc as moins que je fasse un mode ligne de commande vous ne pourrez pas l'utiliser pour votre projet.
    Mais si vous êtes intéresser je cherche des beta testeur (je ne fait en mode synchro que SqlServer).

    Bonne chance
    Sebastien
    DSI et développeur du logiciel Lulidb
    http://www.lulidb.com - outils de gestion de base de données orienté développer.

  8. #8
    Membre confirmé
    Homme Profil pro
    Expert SQL Server
    Inscrit en
    Août 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Expert SQL Server

    Informations forums :
    Inscription : Août 2009
    Messages : 61
    Points : 454
    Points
    454
    Par défaut
    Bonjour

    Avez simplement pensé à coder 3 lignes en C# ou vb.net avec les bibliothèques SyncFX ?
    J'ai fait ce genre de chose pour un client et cela fonctionne très bien. Il y a du LocalDB, SQL Express et edition Std de SQL Server.


    Christophe
    Christophe LAPORTE | Independent Consultant & Trainer
    SQL Server Certified Master | Azure Solution Architect

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/03/2011, 14h38
  2. Synchronisation entre 2 bases de données
    Par xzor- dans le forum Administration
    Réponses: 3
    Dernier message: 09/07/2008, 09h40
  3. Synchronisation entre 2 bases de données Oracle
    Par EdalK dans le forum Outils
    Réponses: 4
    Dernier message: 18/06/2008, 09h41
  4. synchronisation entre deux bases de données via un webService
    Par débutant_C# dans le forum Services Web
    Réponses: 3
    Dernier message: 09/05/2008, 23h19
  5. Synchronisation entre plusieurs base SQL Server
    Par vivoli12 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/05/2007, 13h47

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