Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Réplications
Réplications Forum d'entraide sur les différentes réplications de MS SQL Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2011, 11h14   #1
Invité de passage
 
Homme
Chef de projet en SSII
Inscription : 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 : 0
Points : 0
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 :
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 :
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 :
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 :
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.
nonoDNH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 18h31   #2
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
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 :
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.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h11   #3
Invité de passage
 
Homme
Chef de projet en SSII
Inscription : 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 : 0
Points : 0
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 :
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.
nonoDNH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 09h08   #4
Rédacteur/Modérateur

 
Avatar de WOLO Laurent
 
Homme Laurent WOLO
Architecte de base de données
Inscription : mars 2003
Messages : 2 696
Détails du profil
Informations personnelles :
Nom : Homme Laurent WOLO
Âge : 35
Localisation : Congo-Brazzaville

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

Informations forums :
Inscription : mars 2003
Messages : 2 696
Points : 3 917
Points : 3 917
Envoyer un message via Yahoo à WOLO Laurent
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 !
WOLO Laurent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 09h15   #5
Invité de passage
 
Homme
Chef de projet en SSII
Inscription : 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 : 0
Points : 0
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.
nonoDNH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 10h21   #6
Rédacteur/Modérateur

 
Avatar de WOLO Laurent
 
Homme Laurent WOLO
Architecte de base de données
Inscription : mars 2003
Messages : 2 696
Détails du profil
Informations personnelles :
Nom : Homme Laurent WOLO
Âge : 35
Localisation : Congo-Brazzaville

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

Informations forums :
Inscription : mars 2003
Messages : 2 696
Points : 3 917
Points : 3 917
Envoyer un message via Yahoo à WOLO Laurent
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 !
WOLO Laurent est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h55.


 
 
 
 
Partenaires

Hébergement Web