我构建了一个 SSIS 包,它从多个服务器提取数据并将数据写入 ssis 所在的主服务器。
我在本地构建了这个,当我右键单击解决方案中的包并执行时它会运行,但是当我将 dtsx 部署到服务器时,该包失败。
在服务器上,它成功执行在主服务器上运行的所有任务,但在需要连接到远程服务器读取数据的所有任务上失败。
我正在使用 cmd 调用该包: SELECT @Cmd = 'DTexec/FILE "' + @Path + 'Package.dtsx"/MAXCONCURRENT 1/CHECKPOINTING OFF/REPORTING EW'
EXEC @ReturnCode = xp_cmdshell @Cmd
我收到的错误如下:
列表项描述:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。
OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“登录超时已过期”。
OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“与 SQL Server 建立连接时发生网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确,并且如果 SQL Server 配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。”。
OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“命名管道提供程序:无法打开与 SQL Server [53] 的连接。”。
最佳答案
其中一种可能性是防火墙阻止了 SQLServer 的 IP 地址。
关于sql-server - SSIS在本地运行但在服务器上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50377586/