¿Cómo uso una conexión de base de datos diferente para la configuración del paquete?

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Tengo un paquete SSIS que establece algunos datos variables de una tabla de configuración del paquete de SQL Server.(Seleccionando la opción "Especificar los ajustes de configuración directamente")

Esto funciona bien cuando uso la conexión de base de datos que especifiqué al desarrollar el paquete.Sin embargo, cuando lo ejecuto en un servidor (64 bits) en el entorno de prueba (ya sea como un trabajo de Agente o ejecutando el paquete directamente) y especifico la nueva cadena de conexión en los administradores de conexiones, el paquete aún lee la configuración del servidor de base de datos. que especifiqué en el desarrollo.

Todas las demás conexiones toman las cadenas de conexión correctas, solo parece ser la configuración del paquete la que lee desde el lugar incorrecto.

¿Alguna idea o estoy haciendo algo realmente mal?

¿Fue útil?

Solución

La única forma en que pude hacer esto fue usando variables de entorno de Windows.Puede especificar cosas como cadenas de conexión y preferencias del usuario en variables de entorno y luego seleccionar esas variables de entorno de su tarea SSIS.

Otros consejos

Prefiero usar alias de servidor en la configuración del cliente SQL.De esa manera, cuando decide apuntar el paquete a otro servidor SQL, es tan simple como editar el alias para que apunte al nuevo servidor, sin necesidad de editar el paquete SSIS.Al mover el paquete a un servidor en vivo, debe agregar los alias y funciona.

Esto también ayuda cuando tienes una convención de nomenclatura realmente complicada para los servidores: el alias puede ser un nombre más descriptivo que el nombre real de la máquina.

En realidad, no entendí completamente su pregunta, pero almaceno la configuración de mi conexión en archivos de configuración, generalmente uno para cada entorno, como desarrollo, producción, etc.Los paquetes leen la configuración de conexión de los archivos de configuración cuando se ejecutan.

Cuando crea un trabajo para llamar al paquete SSIS y configura el paso, hay un área con pestañas.La pestaña predeterminada es donde configura el nombre del paquete, y la siguiente pestaña es donde puede configurar el archivo de configuración.Tenga un archivo de configuración para cada paquete y cámbielo para el servidor (dev, test, prod).El archivo de configuración se puede colocar directamente en los servidores de desarrollo, prueba y producción, y luego señalarlos al configurar ese trabajo.

Si está utilizando la configuración del paquete de SQL Server, todas las propiedades de los paquetes provendrán de la tabla de SQL Server. Verifique que

La seguridad de SSIS tal como está es terrible.Nadie podrá soportar las cosas cuando yo esté fuera de la oficina.El trabajo nunca lee el archivo de configuración... Me rindo.Solo funciona cuando edito la cadena en la pestaña Fuentes de datos.Sin embargo, la contraseña se pierde si vuelve a realizar el trabajo por segunda vez.Pésimo diseño, absolutamente horrible.Se podría pensar que cuando especifica un archivo xml en el paso del trabajo, leerá la cadena de conexión definida allí, pero no es así.¿Esto realmente funciona para alguien más?

Vaya a las propiedades del paquete y configure la implementación como Verdadera.Esto debería funcionar para lo que has hecho.

Tuve la misma pregunta y obtuve la misma respuesta, es decir.no puede editar la cadena de conexión utilizada para las configuraciones de paquetes alojadas en SQL Server, excepto si especifica que la cadena de conexión de SQL Server debe estar en una variable de entorno.

Lamentablemente, esto no funciona en mi configuración de desarrollo, donde dos entornos están alojados en la misma máquina.Terminé siguiendo el enfoque de Scott Coleman como se detalla en Central de SQL Server [Registro gratuito y un buen sitio].El truco consiste en crear una vista para almacenar sus ajustes de configuración en un servidor central y luego usar la máquina que se conecta a ella para determinar qué entorno está activo.

Utilicé ese enfoque, pero también usé el usuario que se conecta al entorno para tomar una determinación, porque mis configuraciones de prueba y desarrollo se ejecutan en la misma instancia de SSIS, pero con diferentes nombres de usuario.Scott sugiere en los comentarios que se debe establecer el nombre de la aplicación, pero esto no se puede cambiar en el paso del trabajo de ejecución del paquete, por lo que no era una opción.

Otra advertencia que encontré fue que tenía que agregar activadores "En lugar de" a mi vista para realizar las inserciones, actualizaciones y eliminaciones de las variables de configuración.

Queremos mantener las configuraciones de nuestro paquete en una tabla de base de datos, sabemos que se respalda con nuestros otros datos y sabemos dónde encontrarlos.Sólo una preferencia.

Descubrí que para que esto funcione, puedo usar una configuración de variable de entorno para establecer la cadena de conexión del administrador de conexiones desde el que estoy leyendo la configuración de mi paquete.(Aunque tuve que reiniciar el agente SQL Server antes de que pudiera encontrar la nueva variable de entorno.No es ideal cuando implemento esto en producción)

Parece que cuando ejecuta un paquete SSIS como paso en una tarea programada, funciona en este orden:

  • Cargue cada una de las configuraciones de paquetes en el orden en que aparecen en el Organizador de configuraciones de paquetes.
  • Establezca las cadenas de conexión en la pestaña Orígenes de datos en las propiedades del paso del trabajo del trabajo programado.
  • Comience a ejecutar el paquete.

Habría esperado que los primeros 2 fueran al revés para poder configurar la fuente de datos para la configuración de mi paquete desde el trabajo programado.Ahí es donde esperaría que otras personas lo buscaran al mantener el paquete.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top