sql-server - dtutil 从远程导入 ssis 包
问题描述
我正在尝试将 ssis 包 (.dtsx) 从一台服务器远程导入到另一台服务器,但我遇到了一个奇怪的问题。(dtsx在Server-02上,需要在Server-01上导入)
让我用 3 个命令来解释:
在 Server-01 上运行
osql -E -h -Q "select name from [msdb].[dbo].[sysssispackages] where name like '%MIC%'"
这什么都不返回,我的包还没有导入,没关系。
我在 Server-01 上有一个 .bat 文件,其中包含以下命令:
"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\dtutil.exe" /FILE \\Server-02\D$\BAM_DM_IBZMICVU001.DTSX /COPY SQL;BAM_DM_IBZMICVU001 /QUIET
DTSX 位于 Server-02 上的 D:\,.bat 文件位于 Server-01 上的 D:\。必须运行此 bat 文件才能导入 ssis 包。
然后在 Server-02 上运行
WMIC /NODE:"Server-01" process call create "cmd.exe /A /C D:\\BAM_DM_IBZMICVU001.bat"
它返回成功状态。但是当我再次在 Server-01 上运行我的 osql 命令时,它仍然返回 0 结果。好像还没有导入包...
我们可以认为 bat 文件不起作用,但如果我在 Server-01 上通过双击直接运行 bat 文件,它也可以成功运行。然后我做osql选择,它返回1个结果,包已经成功导入。
这一刻,我以为bat脚本根本就没有远程执行。所以我稍微改了一下。
echo "C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\dtutil.exe" /FILE \\Server-02\D$\BAM_DM_IBZMICVU001.DTSX /COPY SQL;BAM_DM_IBZMICVU001 /QUIET > D:\debug.txt
然后从 Server-02
WMIC /NODE:"Server-01" process call create "cmd.exe /A /C D:\\BAM_DM_IBZMICVU001.bat"
D:\debug.txt 已经在 Server-01 上成功创建,这意味着 bat 脚本也执行得很好...
知道我的情况会发生什么吗?
解决方案
推荐阅读
- javascript - 如何将 JavaScript 对象方法名称作为字符串参数传递
- php - Laravel-Array 输入无法在数据库中更新
- python - 为什么 self 没有定义并给我不同的结果?
- c - 规则 14.2 对于 MISRA C 2012,for 循环应格式正确
- c# - Serilog 不会覆盖 ILogger 的最低级别
- javascript - 如何从 URL 中提取 id?
- r - 根据R中两列中的条件选择所有行(每行多个案例)
- bash - RTNETLINK 回答:设备或资源繁忙
- python - 当我尝试 unpickle 文件时,我在 Python 2.7.9 中不断收到 EOF 错误
- react-redux - react-redux useSelector 告诉“Uncaught TypeError: Object(...) is not a function”