问题标签 [dtexec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
459 浏览

sql-server - SSIS 异步模式问题

我正在从 Msft 论坛重新发布此内容,希望在这里获得更多回复。抱歉,如果这是不赞成的。...我目前正在考虑重构现有的大型 SSIS 2012 实现,该实现由大约 55 个项目和 360 多个包组成。正在使用的 ETL 框架有一个“主”控制包,它从数据库表中读取并确定哪些包准备好执行(基于一些依赖逻辑),然后在调用 dtexec 的循环中使用执行进程任务论据:

/C 启动 Dtexec /SQL "SomePackagePath" /SERVER "someserver"

这种设计允许循环执行一个包,然后立即迭代,因为它不等待包响应(也就是失败或成功完成),因此它可以在许多包准备执行时快速启动。SQL 代理作业用于每隔几分钟调用一次此包,以便它可以拾取自上次执行以来已满足其依赖关系的任何包并启动它们。

这是一个聪明的设计,但存在一些问题,例如分散的异常处理(因为父包不知道“异步”dtexec 调用中发生了什么。

我最担心的是,通过执行包,而不是使用执行包任务,而是使用执行进程任务,并启动许多 dtexec,框架没有利用 SSIS 处理所有正在运行的包和可执行文件的线程、内存消耗等的能力因为它根本不知道它们。它本质上就像使用 ExecuteOutOfProcess 属性设置为 true 的 Execute Package Task。

我想知道这种设计引入了多少风险,以及是否有任何方法可以将过度资源消耗的风险降至最低。对于这里没有确切的问题,我深表歉意,但非常感谢任何人可能提供的任何指导。

0 投票
1 回答
561 浏览

sql - DTExec 找不到文件

我创建了一个包,它被加载到我们的 SQL 服务器上。该包进入一个文件夹,读取和 Excel,将 Excel 转储到一个表中,然后将其存档。

正常运行包时(通过BIDS)它工作得很好。

SSMS 但是当我使用以下行运行它时:

提取 Excel 名称(对于包中的每个循环)的部分报告它没有找到任何内容。

该包需要在32位模式下运行才能读取excel,这就是我使用32位dtexec位置的原因。

有谁知道怎么回事?

0 投票
1 回答
402 浏览

batch-file - 作为子批处理运行时无法执行命令

在“child.cmd”文件中,我有以下命令:

本质上,我使用 DTEXEC.EXE 执行 SSIS 包,并将输出发送到文本文件。如果我双击“child.cmd”,一切都会很好。

但是,如果我尝试从另一个批处理文件中调用“child.cmd”,比如“parent.cmd”,它就不再起作用了。我的“parent.cmd”文件如下所示:

当我运行“parent.cmd”时,我试图在“child.cmd”文件中传递给 DTEXEC.EXE 的参数似乎不再是相同的格式,这会导致错误:

其中“Files..\SSIS”是 /FILE 文件路径输入的一部分。该路径的“文件”部分之前有一个空格。有谁知道这里发生了什么?

注意:由于有空格,很多变量都返回双引号中的文本。我觉得任何有空间的地方都是导致问题的原因。我不知道为什么仅在尝试将其作为子批次运行时才出现问题。

编辑: “child.cmd”是比“parent.cmd”更深的文件夹。我已经更新了上面我在“parent.cmd”中调用“child.cmd”的代码。此外,我没有在我的 cmd 文件中设置 CD,而且我的谷歌搜索似乎表明,当你不知道要从哪个文件位置运行“parent.cmd”时,这样做并不容易,就像案例在这里。

0 投票
1 回答
1091 浏览

sql-server - 如何使用 DTEXEC 远程运行 SSIS 包?

我对使用 dtexec 和部署 SSIS 包非常陌生(主要是在 VS 中运行它们)。我想远程运行一个使用 DTEXEC 部署到服务器的包...

包名称为 SQL2012 Update Run。当我打开 SSMS 时,可以在下面找到该包

集成服务目录 -> SSISDB -> ServerUpdate -> 项目 -> UpdateRun -> 包 -> SQL2012 更新运行

服务器名称为 1555\C1592。

我已经尝试了使用 /sql 命令、/ser 命令、/dts、/file 的各种变体,但我似乎无法让它运行。

如何使用 dtexec 实用程序使用集成安全性在指定位置运行包?

编辑:哦,有 4 个参数,3 个是字符串,一个是 int16,我将如何传递这些参数?

谢谢

0 投票
0 回答
350 浏览

c# - 从代码调用 DTExec 不起作用,但命令提示符可以

我正在编写一个以另一个用户身份运行 DTExec 的应用程序,以运行已部署到服务器的 SSIS 包。目前,我根据是否启用了某些组件来生成参数字符串。

这是我的问题...运行 DTExec 时,我使用以下代码:

当我运行此代码时,我收到错误“存根收到错误数据”并且程序崩溃。当我进入调试模式时,我可以复制作为命令接收的字符串,然后以用户 hello123 运行命令提示符并键入 dtexec [在此处粘贴命令],它运行完全没有问题。这让我相信这个命令是正确的。以下是命令变量内容:

请注意,命令本身没有换行符,我添加了换行符以便于阅读。但是,如果我将该 EXACT 命令(直接来自调试)复制粘贴到 dtexec [在此处插入命令],它将运行该项目。

有任何想法吗?

0 投票
1 回答
2862 浏览

sql-server - DTexec:包执行返回 DTSER_FAILURE (1)

我在 SSIS 中有一个包,当我尝试通过 .bat 文件运行它时出现错误(当我从 SSIS 解决方案运行时,这个错误永远不会出现)。

错误:

说明:SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但引发的错误数 (2) 达到了允许的最大值 (1);导致失败。当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。End Waning DTExec:包执行返回 DTSER_FAILURE (1)。

读取所有日志信息,我在目标列中收到溢出错误。没关系,我知道那个错误,但问题是我需要这个过程成功。

这是因为当容器失败时我会生成一条消息,以告知这一点,但我需要该过程继续并完成“OK”,尽管有错误。

0 投票
1 回答
984 浏览

batch-file - 由于错误 0x800070035,无法打开包文件

完整的错误信息:

这是一个非常奇怪的问题。我们有一个 SSIS 包,它在批处理文件中通过 dtexec 调用。SSIS 包以 64 位运行,我们还使用 64 位版本的 dtexec。

我们有一个任务调度程序,它调用调用包的批处理文件。它看起来像这样:

然而,有时这个包会毫无问题地运行,有时它会抛出一个你可以在上面看到的错误。

为什么会这样?

我们不更改帐户,我们也使用管理员,所以我知道这不是安全问题。

0 投票
1 回答
317 浏览

ssis - Process.Start 应用程序无法使用 DTExec 正确启动

我正在编写一个允许 DBA 远程运行 SSIS 包的工具。该应用程序是一个 XBAP,并已部署到 SQL Server,SSIS 包位于同一服务器上。我通过在服务器上远程运行 DTExec(我打开服务器 DTExec 实用程序,而不是本地版本)来实现 SSIS 包的远程调用,该服务器使用 Process.Start 作为另一个用户运行。

这是我遇到的问题。从我的桌面运行应用程序(从服务器)时,它工作得非常好。启动 DTExec 并执行 SSIS 包。但是,当我转到同一网络中的另一台计算机时,我收到错误

这发生在多台计算机上,但由于某种原因,我的工作。

两台计算机之间的唯一区别是我的计算机上有一个 SQL Server 开发人员版本(这意味着我有一个本地 DTExec 工具 - 但是我没有调用这个工具,路径是 \\server\Microsoft SQL Server.. .\DTExec.exe)。

有谁知道这里发生了什么?

0 投票
1 回答
1122 浏览

sql-server - SSIS:如果缺少任何文件,则停止 SSIS 包执行

我有一个 SSIS 包,它在预定义的位置查找 8 个文件。使用脚本任务我正在检查是否缺少任何文件?如果有任何文件丢失,我会发送一封电子邮件,说明文件丢失。现在,如果在发送电子邮件任务后丢失任何文件,我想停止当前包。

从微软链接:

我可以看到我可以通过停止 ssis 服务(从运行 SSIS 服务的 SQL Server)来停止 ssis 包,这是我不想做的,因为我不确定它是否会再次自动启动 ssis 服务。此外,我无权查看和运行 ssis 服务器中的包并以这种方式进行测试。

我也不确定如何停止使用 DTEXEC 工具。我将不胜感激任何帮助。

0 投票
1 回答
1153 浏览

sql-server - SSIS 包在服务器上手动执行时运行,但从命令行 (dtexec) 运行时失败

我在通过命令行实用程序 dtexec 执行 SSIS 包时遇到问题。我正在使用 Integration Services 和 Business Intelligence Development Studio (VS) 在 SQL 2012 服务器(64 位)上实现此过程。

该软件包正在接收一些日志文件,对其进行一些操作,然后将它们导出到 Excel。(我已强制启用 32 位执行

在 Visual Studio 中运行或通过单击 package.dtsx 文件并手动执行手动运行时,它在服务器上运行良好。

当我通过 dtexec 和命令行运行时,我得到一个 ACE.OLEDB.12 未注册错误。

错误的屏幕截图

这对我来说没有意义,因为我知道我已经安装了驱动程序,并且它在具有相同包设置的同一台服务器上手动运行。

过去两天我一直在搜索,但收效甚微,任何帮助将不胜感激!