我有一个文件系统任务,在服务器之间执行一些ETL(移动一些.txt文件,将其复制到其他目录,重命名)。
当我从Visual Studio执行此程序包时,它运行良好,它将文件从一台服务器复制到另一台服务器,重命名并存档。但是,当我将其设置为要从SQL Server代理运行的作业时,它可以完成而没有错误,但是即使在同一服务器级别,它也不能处理任何文件(无副本,无重命名,无移动)。
这是运行作业的历史记录日志:
以用户USERNAME的身份执行。Microsoft(R)SQL Server执行软件包实用程序版本12.0.2548.0,用于64位版权所有(C)Microsoft Corporation。版权所有。开始时间:下午3:08:56 DTExec:程序包执行返回DTSER_SUCCESS(0)。开始:3:08:56 PM完成:3:08:57 PM经过:0.688秒。包成功执行。步骤成功。
我用于软件包的路径均采用以下格式:
\\ServerName\directory\subDir
我的问题是,我怎么知道为什么文件系统任务实际上不起作用?
我不知道如何更详细地检查日志,以了解我在SQL Server代理上看到的内容,以了解实际发生的情况,并且如果这是权限问题,我认为应该会看到错误。我不确定此时发生了什么。请让我知道是否还有其他信息需要帮助。
编辑:我从我从VisualStudio(有效的一个)执行的内容以及从SQL Server代理调用该程序包时添加的日志文件。
我将替换服务器名称和用户名,但将显示它们在不同文件夹中的允许权限。
**MyUsername** = Username when I run from visual studio
**ORIGIN** = Origin server from where I copy the files
**DESTINATION** = Destination server where I put them and manipulate
**SqlServerAgent** = ServerAgent name
当我从Visual Studio运行时,从计算机上记录文件(并且程序包对文件进行操作):
以及从SQL Server代理运行时的日志文件:
以及有关许可证的信息:
我发现了问题,不在参数中,还是不允许。问题在于,For Each循环指向的是映射的驱动器,而不是像其余文件夹一样指向完整的限定路径,因此For Each循环找不到任何东西。但是许可证还可以,只是没有找到任何东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句