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 :

Faire discuter deux serveurs SQL ?


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Faire discuter deux serveurs SQL ?
    Bonjour a tous,

    Je vous pose ma problématique :

    2 serveurs SQL 2K séparés par le web : le MAIN et le DIST

    Est-ce possible, lors d'une instruction INSERT dans le MAIN de déclencher (donc trigger ?) l'éxécution d'une procédure stockée sur le DIST ?
    (voire apres ca, établir la même procédure en retour du DIST et établir ainsi une discussion complete avec X aller/retours)

    je possède les accès, les droits et tout ce qu'il faut, je tique juste sur la faisabilité et je n'ai rien trouvé dessus après moulte recherche...

    Si vous aviez une réponse ou un lien vers une réponse, je serais comblée

    Meric d'avance.

    Aral.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    la discussion ca peut se faire mais sur des triggers j'ai des doutes. même je pense que ca n'est pas possible.
    au fait tu veux faire quoi. c'est peut etre par là qu'il faut commencer à regarder?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    La base MAIN est une BD de site marchand.

    Je souhaiterai, a la validation d'une commande par un client, insérer une ligne dans la base DIST qui centralise les clients et les commandes.

    A l'idéal, DIST renvoie instantanement le status booléen de la validité du client.

    est-ce plus clair ?

    merci

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    fais ton insert via une procédure stockée. essaye de voir si tu ne peux pas via un appel à une commandos declenché un appel à un exe qui lui mettrait à jour ta base distante.
    sinon vois si 2 bases ne peuvent pas communiquer par web service. mais je ne crois pas que ce soit possible.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    essaye la réplication . c'est celà qu'il te faut. la tu peux discuter de Serveur à serveur. j'aurais du y penser.
    sinon lors de ton insert tu peux en donnant le chemin de ton autre base la mettre à jour avec une autre requete

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Merci déjà de ta réponse rapide rattleH.

    Si quelqu'un a d'autres éléments de réponse quant a la faisablilité ou non d'une discussion entre deux serveurs SQL sans passer par un tiers, surtout qu'il ne se prive pas de m'en faire part

    Merci

    Aral.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par rattlehead
    sinon lors de ton insert tu peux en donnant le chemin de ton autre base la mettre à jour avec une autre requete
    Ca fait tilt, mais désolé, ca reste trop vague pour moi et je ne vois pas tout a fait ce que tu veux dire par la ?

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Citation Envoyé par Araldite
    La base MAIN est une BD de site marchand.

    Je souhaiterai, a la validation d'une commande par un client, insérer une ligne dans la base DIST qui centralise les clients et les commandes.

    A l'idéal, DIST renvoie instantanement le status booléen de la validité du client.

    est-ce plus clair ?

    merci
    Alors pourquoi ne pas implémenter une réplication transactionnelle ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Mes deux bases ont un format différent et il ne s'agit pas de dupliquer des données mais de communiquer une action en temps réel.

    Aussi, je vais me documenter sur la réplication transactionelle car j'en ignore les tenants et aboutissant quant a ma problématique.

    Déjà merci a vous.

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    au moment où ton client va valider sa commande tu vas bien faire une mise à jour de ta base. cette mise à jour tu la fais dans une procédure stockée qui va aussi contenir la mise à jour de ta base DIST ou main, vu que tu as tous les droits sur les 2 serveurs. tu me suis?
    ex: update DIST.tableClient set toto = true where client='client'
    update MAIN.TableCible set champ=toto where client='client'

    tout ca dans la même procédure vu que tu connais le chemin d'acces à tes bases et qu'il te suffit de mettre les bons droits.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Oui je te suis.
    Je te suis tellement bien que j'ai une goutte de sueur sur le front tellement je me dis que je me suis bien compliqué les choses

    Merci a vous !!

  12. #12
    Candidat au Club
    Inscrit en
    Avril 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut , je sais pas si cela va te servir , mais moi j'utilise OPENDATASOURCE dans ma clause FROM pour faire le genre de manip que tu veux faire .



    a+

  13. #13
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 858
    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 858
    Points : 52 996
    Points
    52 996
    Billets dans le blog
    6
    Par défaut
    Il est parfaitement possible de déclencher un trigger entre deux serveurs SQL distants.

    Il faut simplement :
    - activer MSDTC pour assurer une transaction distribuée
    - faire reconnaître les serveurs à l'aide des procédures sp_addlinkedserver et sp_addlinkedsrvlogin

    A +

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Je vais tester tout ca merci

  15. #15
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 858
    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 858
    Points : 52 996
    Points
    52 996
    Billets dans le blog
    6
    Par défaut
    Mais danc votre cas une réplication srait sans doute plus intéressante car un trigger cela veut dire que les deux serveurs doivent TOUJOURS être actif. Si l'un est arrêté pour maintenance, plus aucune opération sur la table contenant le trigger n'est possible.

    En revanche, et contrairement à ce que vous pensez une réplication concerne des données et non des lignes ou des tables.

    Par exemple je peut répliquer la colonne X contenant "abc def" de la table A du serveur S1 dans les colonnes X1 et X2 de la table B du serveur S2 en splitant sur l'espace....
    L'élément de base de la réplication est la donnée, et la donné ce peut être un caractère pris à un endroit particulier d'une colonne d'une ligne d'une table d'une base d'un serveur que l'on insère ou l'on veut dans un autre serveur.

    A +

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/12/2010, 11h50
  2. Comment faire pointer deux serveurs via DNS ?
    Par monsieur77 dans le forum Windows
    Réponses: 1
    Dernier message: 08/12/2009, 16h50
  3. Réplication entre deux serveurs SQL
    Par nicolovitch dans le forum Réplications
    Réponses: 6
    Dernier message: 19/07/2007, 14h28
  4. Réplication entre deux serveurs SQL
    Par nicolovitch dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/07/2007, 14h28
  5. Mise à jour de tables entre deux serveurs SQL
    Par mattyeux dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/03/2007, 09h58

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