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 :

Réplication SQL 2008


Sujet :

Réplications SQL Server

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Réplication SQL 2008
    Bonjour,

    Je suis nouveau ici : un peu d'indulgence

    c'est assez long à expliquer donc je vais essayer de fournir un max d'infos sans trop d'explication.
    Nous avons migré une appli de .net 1.1 à 3.5 et la DB de MSDE/sql 2000 à tout 2008 (client et serveur)

    1 serveur(W2k8-Sql serv entrep 2008 w/adv services) - 1 client(Xp, .net 3.5, sql 2008 R2).

    L'ancien serveur fonctionne toujours et j'ai pu retester la réplication du nouveau client avec l'ancien serveur et cela fonctionne.
    A.
    Mon problème est le suivant quand le lance l'appli en debug ou release, l'appli crée un subscriber qui se connecte au publisher et comme le serveur et le client ne sont pas dans le même réseau cela se passe par FTP (replication transactionnelle).
    Lorsque que j'arrive à l'instant de répliquer j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Error messages:200 Type set to I.
    200 PORT command successful.
    550 Serveur_DB_BFEMPUBLISHER\20110601160005\tblSFTransport_24.pre: The system cannot find the path specified. 
    550 Serveur_DB_BFEMPUBLISHER\20110601160005\tblSFTransport_24.pre: The 
    The process could not retrieve file Serveur_DB_BFEMPUBLISHER\20110601160005\tblSFTransport_24.pre' from the FTP site 'Serveur'.
    L'erreur vient du replication monitor du serveur

    J'ai testé la réplication par snapshot et là idem sauf qu'il cherche le fichier Snapshot.cab.

    Côté IIS tout est ok, j'ai même été jusqu'à ouvrir en test pour tout le monde/tous les droits sur le répertoire et sur l'FTP.
    De mon client en ftp (IE) j'ai accès au fichier, je peux le télécharger et l'ouvrir il contient bien tous les fichiers de la réplication.

    B.

    Ensuite j'ai testé sans passer par mon application, mais directement par SQL serveur, je crée donc un subscriber qui se connecte au serveur, l'assistant se termine sur un franc succès ouff, génial.
    Le tout sur une autre DB avec 2 tables (test d'un TUTO).
    Sauf... quand je regarde le contenu de la DB rien n'a été répliqué. Et je ne vois aucune trace de mon subsriber, je le recommence et là j'ai une erreur (il existe déjà)
    Côté serveur, je vois bien mon subscriber et j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Agent 'Serveur-Voiture-VoiturePublication-Client\Agent-9' is retrying after an error. 36 retries attempted. See agent job history in the Jobs folder for more details.
    Donc dans le job j'ai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    06/01/2011 16:31:03,Serveur-Voiture-VoiturePublication-Client\Agent-8,Retry,2,Serveur,Serveur-Voiture-VoiturePublication-Client\Agent-8,Run agent.,,Executed as user: USER. The replication agent encountered an error and is set to restart within the job step retry interval. See the previous job step history message or Replication Monitor for more information.,00:00:10,0,0,,,,7
    Log suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    06/01/2011 16:23:27,Serveur-Voiture-VoiturePublication-Client\Agent-8,In Progress,2,Serveur,Serveur-Voiture-VoiturePublication-Client\Agent-8,Run agent.,,2011-06-01 14:31:03.326 Copyright (c) 2008 Microsoft Corporation<nl/>2011-06-01 14:31:03.326 Microsoft SQL Server Replication Agent: distrib<nl/>2011-06-01 14:31:03.326 <nl/>2011-06-01 14:31:03.326 The timestamps prepended to the output lines are expressed in terms of UTC time.<nl/>2011-06-01 14:31:03.326 User-specified agent parameter values:<nl/>			-Subscriber Client\Agent<nl/>			-SubscriberDB voiture_replica<nl/>			-Publisher Serveur<nl/>			-Distributor Serveur<nl/>			-DistributorSecurityMode 1<nl/>			-Publication VoiturePublication<nl/>			-PublisherDB Voiture<nl/>			-Continuous<nl/>			-XJOBID 0xD88BC548D9E2934DB891B5CDF57FF450<nl/>			-XJOBNAME Serveur-Voiture-VoiturePublication-Client\Agent-8<nl/>			-XSTEPID 2<nl/>			-XSUBSYSTEM Distribution<nl/>			-XSERVER Serveur<nl/>			-XCMDLINE 0<nl/>			-XCancelEventHandle 00000714<nl/>			-XParentProcessHandle 000007B0<nl/>2011-06-01 14:31:03.327 Startup Delay: 9874 (msecs)<nl/>2011-06-01 14:31:13.202 Connecting to Distributor 'Serveur'<nl/>2011-06-01 14:31:13.385 Agent message code 20084. The process could not connect to Distributor 'Serveur'.,00:07:46,0,0,,,,0
    Je sais que c'est assez indigeste, mais j'ai besoin d'aide, je deviens marteau.
    Surtout qu'en testant avec l'ancien serveur, rien qu'en décochant l'accès FTP de mon subscriber -> sauvegarder > tester > recocher la case > retester j'ai la même erreur sur l'ancien serveur, donc je ne comprends plus du tout ce qu'il se passe.

    D'avance Merci

    Edit : précision, le(s) serveur(s) est une image virtuelle sur VMWARE.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    hello

    D'après ce que tu postes il te faut résoudre le pb qui fait que l'agent ne peut récupérer le snapshot : l'erreur FTP est claire, il ne trouve pas le fichier, tel qu'il passe sa commande.

    as-tu essayé, avec le user/mdp de l'agent qui récupère le snapshot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ftp Serveur
    ... renseigner user/mot de passe ...
    get Serveur_DB_BFEMPUBLISHER\20110601160005\tblSFTransport_24.pre
    quel résultat obtiens-tu ?
    Emmanuel T.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Dans les propriétés du publisher le snapshot agent et le lor reader agent sont :
    SQL Server Agent account

    Dans le Sql Server configuration manager, le service Sql Agent est lié au compte NetWork Service.

    J'ai ajouté ce compte dans les paramètres de sécurité du répertoire NTFS et full control.

    Niveau IIS -> FTP la sécurité est "Allow Anonymous".

    Maintenant ce que je ne comprends pas, c'est comment le client peut m'afficher une erreur précisant le répertoire exacte alors qu'il dit qu'il ne peut pas faire un retrieve du fichier de ce fameux répertoire ?

    Le client ne se connecte au serveur QUE par FTP, puisque dans un cas logique ils peuvent être dans des pays différents. Donc mon client lance une communication FTP, le serveur lui répond j'ai un snapshot dans le répertoire (exemple) FTP/PUBLISHER/DATE_DERNIER_SNAPSHOT/SNAPSHOT.CAB et ensuite le client tente de télécharger le fichier et là ça coince.

    Ou alors là d'où vient peut-être ma méconnaissance de la réplication : y-a-t-il une communication entre les 2 serveurs SQL avant la communication FTP ?

    Voici le code que j'utilise dans mon appli (C#) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    SQLDistributionClass oDist = new SQLDistributionClass();
     
             oDist.Publisher = strPublisher;
             oDist.PublisherDatabase = strPublisherDatabase;
             oDist.Publication = strPublication;
             oDist.PublisherSecurityMode = SQLDISTXLib.SECURITY_TYPE.DB_AUTHENTICATION;
             oDist.PublisherLogin = strPublisherLogin;
             oDist.PublisherPassword = strPublisherPassword;
             oDist.PublisherAddress = strPublisherAddress;
             oDist.PublisherNetwork = SQLDISTXLib.NETWORK_TYPE.TCPIP_SOCKETS;
     
             oDist.FileTransferType = SQLDISTXLib.FILE_TRANSFER_TYPE.FILETRANSFERFTP;
             oDist.FTPAddress = strFTPAddress;
             oDist.FTPLogin = strFTPLogin;
             //oDist.FTPPassword =  strFTPPassword;
     
             // Setup the subscriber
             oDist.Subscriber = strSubscriber;
             oDist.SubscriberDatabase = strSubscriberDatabase;
             oDist.SubscriberDatasourceType = SQLDISTXLib.DATASOURCE_TYPE.SQL_SERVER;
             oDist.SubscriberSecurityMode = SQLDISTXLib.SECURITY_TYPE.DB_AUTHENTICATION;
             oDist.SubscriberLogin = strSubscriberLogin;
             oDist.SubscriberPassword = strSubscriberPassword;
     
             // Setup Subscription
             //oDist.SubscriptionName = strSubscriptionName;
             oDist.SubscriptionType = SQLDISTXLib.SUBSCRIPTION_TYPE.ANONYMOUS;
             oDist.SynchronizationType = SQLDISTXLib.SYNCHRONIZATION_TYPE.AUTOMATIC;
     
             try
             {
                oDist.Initialize();
                oDist.Run();
                oDist.Terminate();
             }
    Encore une fois, ce code fonctionnait avec l'ancien serveur.

    Merci de votre aide.
    N'hésitez pas (tous) à lancer des pistes, car c'est un sujet asserz compliqué et les tutos ne sont pas toujours très claires et cela semble souvent ne pas se limiter à une config SQL, mais bien du serveur, du serveur IIS, du client (firewall, range IP, droits d'accès).

    Enfin, je sens ne pas être loin d'une solution, et comme vous le dites l'erreur semble claire, mais pas la solution... pour moi.

  4. #4
    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
    Qu'est ce que tu tentes de faire, redéveloppez une routine de réplication via C# ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par WOLO Laurent Voir le message
    Qu'est ce que tu tentes de faire, redéveloppez une routine de réplication via C# ?
    Non j'ai une application qui, lors du démarrage tente de créer la réplication et si elle existe fait un run et donc récupère les données du serveur.

    Donc sur mon client (lors de la première install) je crée une DB minimum et ensuite dès que le client démarre, lance la réplication, télécharge les données des différentes tables.

  6. #6
    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
    Ton application doit plutôt acceder aux bases répliquées mais pas aux informations des captures ! Hé toi là que veux tu faire.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. Réplication sql server 2008 ->sql server 2008 express
    Par Satanas_et_diabolo dans le forum Réplications
    Réponses: 1
    Dernier message: 21/09/2012, 10h46
  2. SQL 2008 - Scénarios de réplication
    Par marric01 dans le forum Réplications
    Réponses: 12
    Dernier message: 13/09/2010, 19h23
  3. Problème réplication SQL Server et SQL Server CE (RDA)
    Par didix11 dans le forum Réplications
    Réponses: 2
    Dernier message: 15/04/2004, 11h10
  4. Problème réplication SQL Server et SQL Server CE (RDA)
    Par didix11 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2004, 11h10

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