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).

¿Fue útil?

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:

  1. configurar un trabajo SQL para ejecutar el paquete DTSX
  2. configurar un procedimiento almacenado para ejecutar el trabajo
  3. 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:

  1. 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.
  2. 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'.

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