Comment puis-je utiliser une autre connexion de base de données de configuration de package?

StackOverflow https://stackoverflow.com/questions/38766

  •  09-06-2019
  •  | 
  •  

Question

J'ai un Package SSIS qui définit quelques variables de données à partir d'un Package SQL Server Configuration de la Table.(Sélectionnez l'option "Spécifier les réglages de configuration directement" en option)

Cela fonctionne bien quand je suis en utilisant la connexion de Base de données que j'ai indiqué lors de l'élaboration de l'emballage.Cependant lorsque je l'exécute sur un serveur (64 bits) dans l'environnement de test (soit comme un travail de l'Agent ou de l'exécution du package directement) et je précise la nouvelle chaîne de connexion dans le gestionnaires de Connexion, le package lit encore les paramètres du serveur de base de données que j'ai indiqué dans le développement.

Toutes les autres Connexions prendre la bonne chaînes de connexion, cela semble être la Configuration de Package qui lit à partir de la mauvaise place.

Toutes les idées ou suis-je en train de faire quelque chose de vraiment mauvais?

Était-ce utile?

La solution

La seule façon que j'ai été capable de faire cela est d'utiliser les Variables d'Environnement Windows.Vous pouvez spécifier des choses comme des chaînes de connexion et les préférences de l'utilisateur dans les variables d'environnement, puis ramasser les variables d'environnement de votre SSIS Tâche.

Autres conseils

Je préfère utiliser l'Alias de Serveur dans la Configuration de Client SQL.De cette façon, lorsque vous décidez de point le paquet à l'autre, SQL Server, il est aussi simple que de modifier l'alias pour pointer vers le nouveau serveur, aucun montage nécessaire dans le package SSIS.Lorsque vous déplacez le paquet à un serveur, vous devez ajouter l'alias, et il fonctionne.

Cela aide aussi quand vous avez un réel douloureux convention de nommage pour les serveurs, l'alias peut être un nom plus descriptif que le nom de la machine.

Je n'ai pas vraiment compris ta question mais je conserver mes paramètres de connexion dans un fichier de configuration généralement un pour chaque environnement de dev, production, etc.Les paquets de lire les paramètres de connexion à partir des fichiers de configuration au moment de leur exécution.

Lorsque vous êtes en train de créer un emploi d'appeler le package SSIS, et de la configuration de l'étape, il y a une zone avec onglets.La valeur par défaut de l'onglet vous permet de définir le nom du paquet, et l'onglet suivant est où vous pouvez définir le fichier de configuration.Avoir un fichier de config pour chaque paquet, et le changement pour le serveur (dev, test, prod).Le fichier de configuration peut être mis directement sur le dev, test et prod serveurs, puis pointez sur eux lors de la configuration de ce travail.

Si u sont à l'aide de SQL Server Package de Configuration puis de toutes les propriétés de l'paquets seront issus table SQL Server - Merci de vérifier que

SSIS de sécurité de la façon dont il se tient est terrible.Personne ne sera en mesure de soutenir des choses quand je suis hors du bureau.Le travail ne jamais lire le fichier de configuration...j'abandonne.Il ne fonctionne que quand j'ai modifier la chaîne dans l'onglet sources de Données.Cependant, le mot de passe est perdu si vous arrive d'aller dans le travail une deuxième fois.Terrible conception, absolument horrible.Vous pensez que lorsque vous spécifiez un fichier xml dans l'étape de travail, il serait de lire la chaîne de connexion à partir de là qu'est défini, mais il ne le fait pas.Est-ce réellement travailler pour quelqu'un d'autre?

Goto le paquet et ont mis le déploiement de Vrai.Cela devrait fonctionner pour ce que vous avez fait.

J'avais une question identique, et obtenu la même réponse, à savoirvous ne pouvez pas modifier la chaîne de connexion utilisée pour les configurations de package d'hébergement dans SQL Server, sauf si vous spécifiez que la chaîne de connexion SQL Server doit être dans une variable d'environnement.

Ce qui malheureusement ne fonctionne pas dans mon dev de configuration, où les deux environnements sont hébergés sur la même machine.J'ai fini par suite de Scott Coleman approche détaillée sur SQL Server Centrale [Gratuit inscrivez-vous et un bon site].Le truc, c'est que vous créez une vue de stocker les paramètres de configuration sur un serveur central, et ensuite utiliser la machine qui se connecte à elle de déterminer qui de l'environnement est active.

J'ai utilisé cette approche, mais aussi utilisé l'Utilisateur se connectant à l'environnement pour prendre une décision, parce que mon test et dev configurations de s'exécuter sur le même SSIS exemple, mais comme des noms d'utilisateur différents.Scott suggère dans les commentaires que le nom de l'application doit être défini, mais cela ne peut être changé dans le paquet de l'exécution de l'étape de travail, de sorte qu'il n'était pas une option.

Un autre inconvénient que j'ai trouvé était que je devais ajouter "au Lieu de" déclencheurs à mon avis de le faire les insertions, mises à jour et des suppressions pour les variables de configuration.

Nous voulons garder notre package de configs dans une table de base de données, nous savons qu'il obtient des données avec d'autres données et nous savons où le trouver.Juste une préférence.

J'ai constaté que pour obtenir que cela fonctionne je peux utiliser une variable d'environnement de configuration pour définir la chaîne de connexion du gestionnaire de connexion que je suis à la lecture de mon package de configuration de la.(Bien que j'ai eu à redémarrer l'agent SQL Server avant de pouvoir trouver la nouvelle variable d'environnement.Pas l'idéal pour le déploiement de la ce à la Production)

Lorsque vous exécutez un package SSIS comme une étape dans une tâche planifiée, il travaille dans cet ordre:

  • Charge de chaque Paquet de Configs dans l'ordre où ils apparaissent dans le Package Configuations Organisateur
  • Définir les Chaînes de Connexion à partir de l'onglet sources de Données dans l'Étape de Travail propriétés de la Tâche Planifiée
  • Démarrer l'exécution du package.

Je me serais attendu les 2 premières à être dans l'autre sens autour de sorte que je peux définir la source de données pour mon colis config à partir de la date prévue de l'emploi.C'est là que je m'attends à d'autres gens à regarder pour elle lors de l'entretien de l'emballage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top