BAT 파일에서 DTSX 패키지를 원격으로 실행하는 방법은 무엇입니까?
-
03-07-2019 - |
문제
이 명령과 함께 BAT 파일에서 DTSX 패키지를 원격으로 실행하려고합니다.
DTEXEC /DTS "\File System\MY_PACKAGE_NAME" /SERVER MY_SERVER_NAME /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V
이것은 로컬로 제대로 작동하지만 원격으로 실패합니다 (내가 가리키는 기계에 대한 관리자 권한이 있고 SQL 권한도 있습니다) 타임 아웃 오류가 발생합니다 (로그인 시간 초과가 만료 됨).
해결책 2
약간의 연구 후에는 DTEXEC를 원격으로 실행하는 것이 불가능한 것처럼 보입니다 (로컬로 실행해야합니다. 원격 실행은 지원되지 않습니다).
이 제한을 극복하기 위해 다음 방법은 광범위하게 구현되는 것으로 보입니다.
- DTSX 패키지를 실행하려면 SQL 작업을 설정하십시오.
- 작업을 실행하기 위해 저장된 절차를 설정하십시오
- BAT 파일에서 ISQL 명령 줄을 사용하여 (원격 실행) 관련 SQL 인스턴스에서 저장 프로 시저를 실행합니다 (시스템 자격 증명이 아닌 SQL 자격 증명 포함)
다른 팁
매우 가능하고 쉽습니다. 상점 절차, SQL 에이전트, 웹 또는 .NET 개발이 필요하지 않습니다. Microsoft가 이것을 제안한 적이 없다는 것에 놀랐습니다.
- DTSX 패키지를 실행하려면 SQL Server의 작업을 예약하십시오. 원격 PC에서 수동으로 실행할 때까지 실행되지 않으므로 비활성화하십시오.
- 명령을 사용하여 PC에서 작업을 실행하십시오.
schtasks /run /tn mytask [ /s mysqlserver [ /u [domain] user /p password]] /?
참고 : 비밀번호 노출이 마음에 들지 않으면 'psexec'명령을 사용하여 'Schtasks'명령을 실행하십시오 (무료 및 강력한 도구를 다운로드하십시오. http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
SSIS는 호스팅 서버에 웹 서비스를 노출시킵니다. 코드를 통해, 패키지 용 머신을 쿼리하고, 데이터베이스 또는 파일 시스템을 통해 패키지를 실행하고, 원하는 모든 프로그래밍 플랫폼을 통해 프로그래밍 방식으로 패키지의 변수를 추가 / 수정할 수 있습니다.
즉, 'detexec'명령이 포함 된 로컬 배치 파일을 호출하기 위해 웹 서비스를 설정할 수도 있습니다.