¿Cómo ejecutar remotamente un paquete DTSX desde un archivo bat?
-
03-07-2019 - |
Pregunta
Estoy intentando ejecutar de forma remota un paquete DTSX desde un archivo bat con este comando:
DTEXEC /DTS "\File System\MY_PACKAGE_NAME" /SERVER MY_SERVER_NAME /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V
Esto funciona bien localmente pero falla de forma remota (tengo derechos de administrador en la máquina a la que apunto y también tengo permisos de SQL) Recibo un error de tiempo de espera (tiempo de espera de inicio de sesión vencido).
Solución 2
Después de un poco de investigación, parece que es imposible ejecutar DTEXEC de forma remota (debe ejecutarse localmente; no se admite la ejecución remota).
Para superar esta limitación, el siguiente método parece implementarse ampliamente:
- configurar un trabajo SQL para ejecutar el paquete DTSX
- configurar un procedimiento almacenado para ejecutar el trabajo
- use la línea de comando isql en un archivo BAT (ejecutado remotamente) para ejecutar el procedimiento almacenado en la instancia SQL relevante (con credenciales SQL y no credenciales de máquina)
Otros consejos
Es muy posible, y muy fácilmente. No es necesario tener un procedimiento de almacenamiento, ni agente SQL, ni desarrollo web o .NET. Me sorprende que Microsoft nunca sugirió esto:
- Programe una tarea en el servidor SQL para ejecutar el paquete DTSX. Inhabilítelo para que no se ejecute hasta que lo ejecute manualmente desde una PC remota.
- Ejecute la tarea desde la PC usando el comando:
schtasks / run / tn MyTask [/ s MySQLServer [/ u [dominio] usuario / p contraseña]] /?
Nota: si no le gusta exponer la contraseña, use el comando 'PSEXEC' para ejecutar el comando 'schtasks' (descargue la herramienta gratuita y poderosa de http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
SSIS también expone un servicio web en el servidor de alojamiento. Puede hacerlo por código, consultar paquetes en una máquina, ejecutar paquetes a través de una base de datos o sistema de archivos y agregar / modificar variables del paquete mediante programación a través de cualquier plataforma de programación que desee.
Dicho esto, también puede configurar su servicio web para llamar a su archivo por lotes local que contiene su comando 'DETEXEC'.