Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
img
img

 

 

SQL Server
Blog. (Apuntes y Recopilaciones) por Norman M. Pardell

img
img
18 de Octubre, 2011 · ejecutar-DTSX

ejecutar un Paquete DTSX. SSIS. SQL Server

Existen distintas formas de ejecutar un Paquete DTSX de SSIS , cada una de las cuales puede presentar ciertas ventajas o inconvenientes según en el caso particular en que la deseemos aplicar.
  • Ejecutar un Paquete DTSX desde Business Intelligence Development Studio (BIDS). Desde BIDS podemos crear nuestros Proyectos de SSIS , que estarán formados por nuestros Paquetes DTSX. Estos Paquetes DTSX se almacenarán en el File System, y NO se almacenarán ni en SQL Server (MSDB) ni en el Package Store. Como mucho, podremos integrar BIDS con Visual Source Safe, o en todo caso, desplegar o publicar los Paquetes DTSX del Proyecto en un Package Store, en un servidor SQL Server, o en otro File System. La principal ventaja de BIDS, es que al tratarse de la herramienta de desarrollo de SSIS , podemos ver de forma gráfica la ejecución del Paquete DTSX, incrustar Lectores de Datos para ver los datos que se mueven por nuestros Flujos de Datos (Data Flows), etc. Es muy cómodo, pero sólo se trata de una herramienta de desarrollo y se limita a la ejecución de Paquetes DTSX almacenados en el File System.

 

  • Ejecutar un Paquete DTSX con la utilidad dtexec. La utilidad dtexec es un comando de consola (es decir, a lo MS-DOS ) que permite ejecutar un paquete, independiente de que esté almacenado en el File System, en SQL Server, o en el Package Store. En caso de necesidad, podemos plantearnos la posibilidad de ejecutar dtexec desde el procedimiento almacenado del sistema xp_cmdshell, con lo cual, podríamos ejecutar un Paquete DTSX desde un simple Procedimiento Almacenado o desde un bloque e código Transact-SQL (recordar que por defecto, xp_cmdshell viene desactivado por seguridad, y deberá ser activado con sp_confire o Surface Area Configuration Tool).
    Cabe la posibilidad de ejecutar dtexec desde una tarea programada de Windows , desde otra herramienta utilizada para planificación de tareas, o bien, también se puede invocar manualmente (ejecutando un fichero BAT) o desde otra aplicación o proceso.
    Podríamos ver a dtexec como la herramienta que sustituye a la utilidad dtsrun, que se utilizaba para el mismo propósito con SQL Server 2000.
    Entre sus muchas posibilidades, está poder establecer valores a las variables del Paquete DTSX, actualizar las cadenas de conexión utilizadas por los Connection Managers del Paquetes, especificar ficheros de configuración, la contraseña de decriptación si el Paquete DTSX fué guardado cifrando la información sensible, y un largo etc. Es decir, todas las opciones que se le pueden indicar a un Paquete DTSX para su ejecución, se le pueden indicar utilizando dtexec.
    La realidad, es que la utilidad dtexec junto a la utilidad dtutil, hacen un equipo perfecto !!, pues esta última permite gestionar SSIS (mover Paquetes, copiarlos, borrarlos, etc.).
    Cabe destacar, que en una máquina de arquitectura x64, la instalación de SSIS instalará dos versiones de dtsexec: la de 32-bit y la de 64-bit.
    Requiere instalar SSIS en la máquina en la que se desea utilizar dtexec.

 

  • Ejecutar un Paquete DTSX con la utilidad dtexecui. La utilidad dtexecui es una interfaz gráfica, que permite ejecutar un paquete independiente de que esté almacenado en el File System, en SQL Server, o en el Package Store. Su principal ventaja es que permite de forma sencilla especificar todas las opciones necesarias para ejecutar un Paquete DTSX, ofreciendo todas las opciones de dtexec pero de forma gráfica, incluso permite generar la línea de comandos para dtsexec desde las opciones que tengamos especificadas (vamos, que nos sirve de chuleta).

 

  • Ejecutar un Paquete DTSX desde un Job del Agente de SQL Server. Desde un JOB del Agente de SQL Server, podemos añadir un paso del tipo SQL Server Integration Services Package, y en las propiedades de dicho paso, podemos especificar todas las opciones necesarias para ejecutar el Paquete DTSX, del mismo modo que lo haríamos con dtexecui. Sin embargo, el Agente de SQL Server nos permitirá planificar la ejecución de nuestro Paquete DTSX, y disfrutar de todas las ventajas que ofrece el Agente de SQL Server (Alertas, Operadores, etc.). Permite ejecutar un paquete independiente de que esté almacenado en el File System, en SQL Server, o en el Package Store.
    Requiere instalar SSIS en la máquina SQL Server en la que se desea ejecutar el JOB..
    Se debe garantizar que el usuario utilizado en las Credenciales (Credentials) de la cuenta Proxy empleada en el paso del JOB, tiene los suficientes permisos (ej: acceso al sistema de ficheros, conexiones de base de datos , etc.) para la ejecución del Paquete DTSX.

 

  • Ejecutar un Paquete DTSX desde Programación. Es posible desde una aplicación .Net Framework (Windows Formas, ASP.Net, XML Web Service, etc.), utilizar el modelo de objetos de SSIS (SSIS Object Model), y con unas pocas líneas de código lograr nuestro objetivo. Necesitaremos utilizar las clases de Microsoft.SqlServer.Dts .Runtime, para poder cargar el Paquete DTSX (método LoadPackage) desde dónde se encuentra almacenado (File System, Package Store o SQL Server) y después ejecutarlo (método Execute). Puede encontrarse más información y ejemplos en los Libros en Pantalla (BOL - Books On Line). Requiere de un desarrollo .Net Framework 2.0, y además requiere instalar SSIS en la máquina en la que se desean ejecutar los Paquetes DTSX.
    De forma alternativa, desde una aplicación .Net Framework sería posible ejecutar la utilidad dtexec.exe, y así también lograr nuestro objetivo. Otro truquillo sería ejecutar un Job del Agente de SQL Server que a su vez ejecute el Paquete DTSX que deseamos, pudiendo ejecutar dicho JOB desde código Transact, o a través del modelo de objetos de SQL Server (SMO - SQL Server Management Objects).

 

Ante todo asegurarse de que el servicio lo ejecutas bajo un usuario administrador.

Como conclusión, tenemos varias maneras de ejecutar nuestros Paquetes DTSX, y para gustos, hay colores. Yo personalmente desarrollo con BIDS (evidentemente) y prefiero ejecutar los Paquetes DTSX con el Agente de SQL Server y dejarlos almacenados en SQL Server (es decir, en MSDB).

En cualquier caso, debemos tener en cuenta que al desarrollar en un equipo y mover el Paquete DTSX desarrollado a otro equipo (o incluso almacenarlo en SQL Server), podemos encontrarnos con problemas relativos a seguridad, en particular, al valor de la propiedad ProtectionLevel. Quizás, sea este el principal detalle a tener en cuenta al elegir con qué método ejecutar nuestros Paquetes DTSX, pues nos podemos encontrar que nuestros Paquetes DTSX no se ejecuten y se produzca el siguiente error:

Error loading PackageName: Failed to decrypt protected XML node "PackagePassword" with error 0x8009000B "Key not valid for use in specified state."

You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.


http://msdn.microsoft.com/es-es/library/ms162810.aspx


Apuntes y recopilaciones por  Norman M. Pardell 

 

Puedes consultarme, si deseas cualquier aclaración, pregunta o sugerencia en: Contacto, contestaré tan pronto como me sea posible.



publicado por normanmpardell a las 06:09 · Sin comentarios  ·  Recomendar
Comentarios (0) ·  Enviar comentario
Esta entrada no admite comentarios.
img
.Sobre mí
FOTO

Norman M. Pardell

MCITP: Database Administrator & Database Developer, SQL Server 2008. MCC Award Certificate. Consultor Senior de bases de datos en Capgemini España, S.L. Asesoramiento en implementación, desarrollo y gestión de bases de datos en grandes compañías. Actualmente, asignado a proyecto en compañía líder en el sector energético global. Más de 10 años trabajando con SQL Server (y otros gestores de BBDD)

» Ver perfil

img
.Secciones
» Inicio
img
.Enlaces
» Microsoft MSDN Foros
» Windows Server 2012
img
.Más leídos
» Asignar la cantidad correcta de Memoria para SQL Server
» Base de Datos Sospechosa (Suspect)
» Como modificar la Intercalación (Collation) en SQL Server
» Como renombrar una instancia de SQL Server. sp_dropserver. sp_addserver
» Detectar bloqueos. SQL Server V.2005 y superiores
» Funciones SQL Server. Funciones escalares y funciones con valores de tabla.
» Integridad y corrupción en las bases de datos: DBCC CHECKDB
» Log de transacciones ( .ldf ). SQL Server.
» Migrando SQL Server 2005, 2008, 2008 R2 a SQL Server 2012
» Transacciones activas. SQL server 2008
img
.Nube de tags [?]
                                                           
img img
FULLServices Network | Crear blog | Privacidad