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 23/06/2006, 12h21   #1
Invité de passage
 
Inscription : septembre 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 6
Points : 1
Points : 1
Par défaut Réplication de Lot DTS dans SQL SERVER

Bonjour ,

Nous avons créé un grand nombre de lot DTS dans SQL SERVER 2000 sous un environnement de DEV pour les besoins d'une application et nous cherchons à les recopier sur notre serveur de prod.

Ma question est donc la suivante :

Existe t'il une fonctionnalité SQL server ou un outil permettant de dupliquer des lots d'un server vers un autre ?
Sachant que la génération de script est possible pour les bases de données, les tables, les procédures stockées etc ...

Merci d'avance
benblood est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2006, 12h57   #2
Expert Confirmé
 
Avatar de rudib
 
Inscription : mai 2006
Messages : 2 236
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 2 236
Points : 2 983
Points : 2 983
Envoyer un message via ICQ à rudib Envoyer un message via MSN à rudib
Bonjour,

Tu peux par exemple tous les ouvrir et les resauver sur l'autre serveur. Ou tu peux apparemment copier msdb..sysdtspackages, comme indiqué dans cet article :
http://www.databasejournal.com/featu...le.php/1461521
__________________
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation, formation,
solutions MS SQL Server et informatique libre.
MCDBA, MCITP, MCT, SCJP2 - http://www.babaluga.com/
Articles et tutoriels : http://rudi.developpez.com/
LIVRE : Optimiser SQL Server
rudib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2006, 14h29   #3
Invité de passage
 
Inscription : septembre 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 6
Points : 1
Points : 1
Merci beaucoup
C'est vrai pourquoi faire simple quand on peut faire compliquer.

Je n'y avais pas pensé, désolé et merci.
benblood est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2006, 14h31   #4
Membre confirmé
 
Inscription : octobre 2005
Messages : 344
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 344
Points : 270
Points : 270
je l'ai essayé et ça marche super bien. J'ai légérement modifié le code pour n'en copier qu'un seul de la sorte:

Citation:
SELECT T1.* FROM dbo.sysdtspackages AS T1
INNER JOIN (
SELECT [name], [id], MAX([createdate]) AS [createdate]
FROM dbo.sysdtspackages where T1.[name] = 'nom du lot' GROUP BY [name], [id] ) AS T2
ON T1.[id] = T2.[id] AND T1.[createdate] = T2.[createdate]
Et là encore, c'est bon.

Par contre, je voudrais maintenant passer le nom du lot en paramètre. J'ai essayé ça:

Citation:
SELECT T1.* FROM dbo.sysdtspackages AS T1
INNER JOIN (
SELECT [name], [id], MAX([createdate]) AS [createdate]
FROM dbo.sysdtspackages where T1.[name] = ? GROUP BY [name], [id] ) AS T2
ON T1.[id] = T2.[id] AND T1.[createdate] = T2.[createdate]
afin de pouvoir affecter une variable globale que je pourrais passer via un /A dans la commande dtsrun .... Mais ça ne marche pas ...
Quelqu'un aurait une idée ??
usf70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 08h48   #5
Expert Confirmé
 
Avatar de rudib
 
Inscription : mai 2006
Messages : 2 236
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 2 236
Points : 2 983
Points : 2 983
Envoyer un message via ICQ à rudib Envoyer un message via MSN à rudib
Salut,

"Ca ne marche pas" est en général pas assez descriptif pour qu'on puisse en faire qqch. Comment exactement cela ne marche pas ?
Tu as mis ton code dans une tâche "Execute SQL" ? Tu as mappé le paramètre avec la variable globale dans les options de ta tâche ? Ton code SQL est parsé correctement par la tâche ? As-tu essayé d'encapsuler le code dans une procédure stockée pour l'exécuter depuis ta tâche ?
__________________
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation, formation,
solutions MS SQL Server et informatique libre.
MCDBA, MCITP, MCT, SCJP2 - http://www.babaluga.com/
Articles et tutoriels : http://rudi.developpez.com/
LIVRE : Optimiser SQL Server
rudib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 09h29   #6
Membre confirmé
 
Inscription : octobre 2005
Messages : 344
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 344
Points : 270
Points : 270
EN fait, j'ai suivi les instructions décrites dans ton lien:

http://www.databasejournal.com/featu...le.php/1461521

J'ai donc créé mes deux connections et ma tâche de transformations de données. Dans celle-ci, j'ai choisi "requête SQL" dans laquelle j'ai mis le code ci-dessus.
En remplaçant le :
Citation:
where T1.[name] = 'nom du lot'
par
Citation:
where T1.[name] = ?
J'ai une erreur de synthaxe quand je clique sur la touche "analyser la requête". Et donc je ne peux pas utiliser les variables globales.
Je ne sais pas si j'ai été suffisamment clair.
usf70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 09h50   #7
Expert Confirmé
 
Avatar de rudib
 
Inscription : mai 2006
Messages : 2 236
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 2 236
Points : 2 983
Points : 2 983
Envoyer un message via ICQ à rudib Envoyer un message via MSN à rudib
Ok, j'ai compris. C'est clair.

Je pense que le parseur SQL du DTS est assez peu intelligent, j'ai déjà eu des problèmes de ce type. Là, comme tu as une sous-requête, il est certainement perdu. La solution la plus simple à mon avis est d'encapsuler le code dans une procédure stockée, et ensuite de faire un appel du genre
__________________
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation, formation,
solutions MS SQL Server et informatique libre.
MCDBA, MCITP, MCT, SCJP2 - http://www.babaluga.com/
Articles et tutoriels : http://rudi.developpez.com/
LIVRE : Optimiser SQL Server
rudib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 22h53   #8
Membre confirmé
 
Inscription : octobre 2005
Messages : 344
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 344
Points : 270
Points : 270
Génial ... Ca marche super bien. J'ai créé une procédure dans la base MSDB (y a-t'il un mal à ça d'ailleurs ?) et je l'exécute depuis le lot DTS.
Mes développeurs n'ont plus besoin d'aller magouiller sur la prod pour leur lots maintenant.
Nous avons fait un test et c'est OK.
Merci de votre aide ... Ca fait un moment que je cherchait une solution de ce genre.
usf70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2006, 15h58   #9
Membre confirmé
 
Inscription : octobre 2005
Messages : 344
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 344
Points : 270
Points : 270
Toujours dans la même optique ... Quand je transporte mes lots DTS de la recette vers la prod, j'ai un problème avec les chaines de connexion, ainsi que les noms des serveurs qui ne sont pas forcément les mêmes ... La procédure citée plus haut transporte le lot tel quel d'un serveur vers l'autre...
Y-at'il un moyen de remplacer tout ça par des variables . Qui seraient renseignées par des variables globales ou des fichiers .ini ?
usf70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2006, 16h47   #10
Expert Confirmé
 
Avatar de rudib
 
Inscription : mai 2006
Messages : 2 236
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 2 236
Points : 2 983
Points : 2 983
Envoyer un message via ICQ à rudib Envoyer un message via MSN à rudib
Bonjour,

Oui, tu peux gérer ta chaîne de connexion avec un fichier ini par exemple. Regarde la tâche "Dynamic Properties" (de mémoire) de DTS.
__________________
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation, formation,
solutions MS SQL Server et informatique libre.
MCDBA, MCITP, MCT, SCJP2 - http://www.babaluga.com/
Articles et tutoriels : http://rudi.developpez.com/
LIVRE : Optimiser SQL Server
rudib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 11h00   #11
Membre confirmé
 
Inscription : octobre 2005
Messages : 344
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 344
Points : 270
Points : 270
Ok, merci rudib ...
Grâce à tes recos, j'ai trouvé le site suivant si ça interresse quelqu'un:

http://www.databasejournal.com/featu...le.php/3073161
usf70 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 04h34.


 
 
 
 
Partenaires

Hébergement Web