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 :

synchroniser plusieurs bases de donnees


Sujet :

Réplications SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut synchroniser plusieurs bases de donnees
    bonjour,

    je commence un projet qui comporte 3 bases de donnees sql server 2008. le but serait de synchroniser les 3 bases de donnees a chaque fois qu'une d'entre elles est soumis a un INSERT/DELETE/UPDATE...etc. j'ai pense a la merge replication que propose sql server. donc chaque base bdd serait a la fois client et serveur pour les replications. cela posera un probleme ? avez vous une meilleure idee ? merci

  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 774
    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 774
    Points : 52 744
    Points
    52 744
    Billets dans le blog
    5
    Par défaut
    Quel intérêt ? La réplication de fusion est la plus :
    • complexe
    • gourmandes en ressources
    • incohérente (il faudra arbitrer les conflits)


    Commencez par nous décrire votre besoin fonctionnel !

    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
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    ok,

    a l'heure actuelle, il ya un seul serveur avec la base de donnee. l'entreprise desire faire du load balancing avec la base de donnee et des scripts ruby. elle souhaite rajouter 2 nodes contenant les scripts ruby et la base de donnee dans chaque serveur. les bases de donnees (3 en tout) doivent etre synchronisees en temps reel. exemple : lorsqu'un enregistrement dans une des bases de donnees est ajoute ou modifie, il faudrait que la modification soit egalement faite presque instantanement dans les 2 autres base de donnees.

    est ce possible et pas trop lourd de synchroniser ces 3 bdd de maniere presque instantanee ?

  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 774
    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 774
    Points : 52 744
    Points
    52 744
    Billets dans le blog
    5
    Par défaut
    Vous faites fausse route sur les concepts. Il n'y a aucun intérêt à faire du lload balancing sur une base de données avant d'avoir épuisé le scale up. Cela va couter extrêmement cher : en machine en licences et en ressources, surtout si vous voulez que ceci soit quasiment synchrone. AVez vous un dba en permanence ? Quelle est la taille de votre serveur ? quel est le nombre potentiel d'utilisateur ? Dans quel but voulez vous faire du load balancing (c'est bon pour les serveur web ou d'objet, mais catastrophique pour les SGBDR !) ???

    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
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    merci pour la reponse,

    j'ai parle a l'entreprise. en fait leur but principal est : lorsque le serveur principal a trop de clients connectes, ils aimeraient avoir un autre serveur identique pour rediriger les autres clients afin d'alleger le premier serveur. donc il faut que les serveurs soient identiques. le load balancing serait plus utilise pour des modules en ruby.

    pour repondre a vos questions, non il n'ya pas de dba dans l'entreprise et potentiellement il pourrait y avoir 400 utilisateurs connectes au meme moment.

    pour l'instant, l'entreprise a deja achete les 2 autres serveurs donc la solution des 3 serveurs est a l'autre du jour. je viens de faire des recherches, et j'ai trouve le mirroring. cela pourrait etre une solution ?

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 774
    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 774
    Points : 52 744
    Points
    52 744
    Billets dans le blog
    5
    Par défaut
    Le mirroring comme le clustering est une solution passive : c'est de la haute dispo, pas du balancing. La base de données clonée est inaccessible tant que le système source n'est pas HS.
    400 user c'est un seul serveur c'est peanuts ! J'ai des serveurs avec plus de 5000 user connectés... Là d'ou j'écrit (depusi un de mes clients) le serveur compte plus de 1200 user sans connaître le moindre temps d'attente anormal.
    Sachez que fnac.com c'est du SQL server après plusieurs milliers d'utilisateurs connecté.

    Le load balancing est concevable pour du serveur web, pas pour un SGBDR !

    Oracle fait cela vec RAC, mais avec un cout exorbitant (comptez un minimum de 15 000 $ par CPU sur l'ensemble des machines balancées).
    Pour faire cela avec SQL Server vous ne pouvez le faire qu'en asynchrone, par réplication de fusion et en multipliant les licences (Windows + SQL).

    Encore une fois votre client fait totalement fausse route !
    Quelle est l'architecture globale du système : machine (CPU, RAM, DISQUE), serveur tournant sur machine, nombre attendu d'user, type de transaction...

    Lisez l'article que j'ai écrit sur la haute dispo : http://sqlpro.developpez.com/cours/s...disponibilite/

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

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    En fait j'ai rediscute avec l'entreprise. il n'y aura pas de balancing pour la base de donnees mais pour les scripts Ruby. ca c'est gere avec deux serveurs. sur ces serveurs il y'a aussi une base de donnees. ces bases de donnees ont besoin d'etre synchronisees en temps reel pour qu'elles aient les memes donnees.
    etant donne que chaque bdd peut etre modifiee, j'avais pense a la replication par fusion. y'a t'il des solutions plus performantes ?

  8. #8
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par djraphi23 Voir le message
    En fait j'ai rediscute avec l'entreprise. il n'y aura pas de balancing pour la base de donnees mais pour les scripts Ruby. ca c'est gere avec deux serveurs. sur ces serveurs il y'a aussi une base de donnees. ces bases de donnees ont besoin d'etre synchronisees en temps reel pour qu'elles aient les memes donnees.
    etant donne que chaque bdd peut etre modifiee, j'avais pense a la replication par fusion. y'a t'il des solutions plus performantes ?
    La réplication par fusion est consommatrice de ressources,...
    La réplication transactionnelle peut être intéressante. Elle est quasi temps réel.
    Mais attention, toutes les tables impliquées dans cette réplication doivent avoir une clé primaire.
    A+
    Etienne ZINZINDOHOUE
    Etienne ZINZINDOHOUE
    Billets-Articles

  9. #9
    Membre éclairé Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Points : 690
    Points
    690
    Par défaut
    Il serait préférable à mon avis d'isoler le ou les serveurs de base de données des serveurs d'applications. Et j'ai l'impression que dans ta config c'est le même serveur qui abrite les deux.
    Cela permet de faire (relativement simplement) le load balancing sur tes serveurs d'applications en conservant une seule base de données.
    - Informaticien passionné
    - ( java, c++, cobol, php, asp, ... )
    - http://www.berthou.com/fr/

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    ->zinzineti
    Oui c'est un problème, ça ne laisse plus beaucoup de ressource pour les applications. A propos, de la réplication transactionnelle, elle peut etre bi-directionnelle (correspondre a mon cas) ? j'ai entendu parler de replication peer to peer, est ce cela ?

    ->rberthou
    C'est ce que je pense également. j'en ai parle mais ils voudraient garder des bases de donnees de secours. au cas ou la bdd crashe.

  11. #11
    Membre éclairé Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Points : 690
    Points
    690
    Par défaut
    Citation Envoyé par djraphi23 Voir le message
    ->rberthou
    C'est ce que je pense également. j'en ai parle mais ils voudraient garder des bases de donnees de secours. au cas ou la bdd crashe.
    Cela ne t'empêche pas de faire une synchro de type maitre/esclave qui te permet d'avoir ta base de données de secours.

    Par contre SEPARE les serveurs bases de données des serveurs d'applications.
    - Informaticien passionné
    - ( java, c++, cobol, php, asp, ... )
    - http://www.berthou.com/fr/

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Points : 1 069
    Points
    1 069
    Par défaut
    Hello,

    Je me permets de rajouter qq chose, même si beaucoup de choses ont déjà été dites. Le Peer to peer se rapproche effectivement de ce que tu veux faire, mais il est très difficile à implémenter, car il suppose que les modifications exécutées sur chacune des bases soient partitionnées, pour ne jamais entrer en conflit les unes avec les autres. Par exemple, trois bases une à Paris, une à Londres et une à New-York mettent à jour des stocks par pays (FRA, UK et US). La base en France est accédée en readwrite par les applications FR qui mettent à jour des données françaises, et poussent les modifications sur les bases US et UK, qui font la même chose dans l'autre sens. A aucun moment les mises à jour ne se téléscopent car elles interviennent sur des données différentes. Donc pour mettre en place le P2P, il faut d'abord que l'application soit codée pour.

    David B.
    David B.

Discussions similaires

  1. [Archi]Oracle avec plusieurs Base de donnees
    Par nytmare dans le forum Oracle
    Réponses: 3
    Dernier message: 29/11/2006, 19h36
  2. Synchronisation de base de données
    Par superbobo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/11/2006, 15h29
  3. Comment synchroniser deux bases de données
    Par apoingsfermes dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 15/11/2006, 22h41
  4. liaison entre plusieurs base de donnee
    Par GMI dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/12/2004, 18h42
  5. Accès à plusieurs bases de données
    Par k4eve dans le forum Hibernate
    Réponses: 11
    Dernier message: 22/04/2004, 15h43

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