Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 说明:组件“;MyDataFlowOLEDBSourceComponent“;(10250)预执行阶段失败,返回错误代码0xC0202009_Sql Server 2008_Ssis - Fatal编程技术网

Sql server 2008 说明:组件“;MyDataFlowOLEDBSourceComponent“;(10250)预执行阶段失败,返回错误代码0xC0202009

Sql server 2008 说明:组件“;MyDataFlowOLEDBSourceComponent“;(10250)预执行阶段失败,返回错误代码0xC0202009,sql-server-2008,ssis,Sql Server 2008,Ssis,我有一个SSIS包,每天运行几个月都没有问题。突然之间,它每天都会因为上面的错误而失败。尚未对包或其运行的存储过程进行任何更改。据我所知,尚未对数据库环境进行任何更改,包括拥有作业的服务帐户的权限 这是一个连接到SQL Server 2008 R2数据库的SQL Server 2008包。配置是通过ssisconfig表进行的,它通过环境变量定义要使用的服务器 正在讨论的组件正在使用存储的进程。在proc中,所有字段都显式转换为数据也正在暂存的表的相同数据类型。进程本身运行良好。它是一个相对复杂

我有一个SSIS包,每天运行几个月都没有问题。突然之间,它每天都会因为上面的错误而失败。尚未对包或其运行的存储过程进行任何更改。据我所知,尚未对数据库环境进行任何更改,包括拥有作业的服务帐户的权限

这是一个连接到SQL Server 2008 R2数据库的SQL Server 2008包。配置是通过ssisconfig表进行的,它通过环境变量定义要使用的服务器

正在讨论的组件正在使用存储的进程。在proc中,所有字段都显式转换为数据也正在暂存的表的相同数据类型。进程本身运行良好。它是一个相对复杂的过程,有两个表变量和一个CTE

我无法在prod上从本地运行它,并且开发人员没有失败。如果在设置为作业所有者使用的环境变量时打开prod SSIS包,则不会在此组件上收到验证错误。此组件的ValidateExternalMetadata设置为true。但是,对于整个包,延迟验证设置为True。我确实得到了一个验证错误,这是在使用在早期任务中动态设置的变量的任务上预期的。但是,这个错误比它当前失败的步骤晚了很多很多步骤

通常在过去,当我们遇到这种非特定的错误时,我很容易就能看到导致突然失败的数据的问题。但是,对于为该字段的暂存表定义的数据类型,proc结果集中的所有数据几乎都不正确。所有必填字段也都不缺少数据


我不知道还能看什么。如果环境没有改变,实际代码没有改变,数据看起来正确,还有什么可以尝试的呢?

正如我评论的详细信息错误,您可以尝试以下Microsoft链接:

链接中的一些信息:

程序包可能失败的原因如下:

  • 用于在SQL Server代理下运行包的用户帐户与原始包作者不同

  • 用户帐户没有进行连接或访问SSIS包外部资源所需的权限

在以下情况下,程序包可能无法运行:

  • 当前用户无法解密包中的机密。如果当前帐户或执行帐户
    与原始包作者不同,并且包的 ProtectionLevel属性设置不允许当前用户使用
    解密包中的秘密

  • 使用集成安全性的SQL Server连接失败,因为当前用户没有所需的权限

  • 文件访问失败,因为当前用户没有写入连接所需的文件共享所需的权限 经理访问。例如,此场景可能与文本一起出现 不使用登录名和密码的日志提供程序。这种情况 依赖于文件连接的任何任务也可能发生 管理器,例如SSIS文件系统任务

  • 基于注册表的SSIS包配置使用HKEY_CURRENT_用户注册表项。HKEY\U当前用户注册表项
    是用户特定的。 任务或连接管理器要求当前用户帐户具有正确的权限

方法1:使用SQL Server代理代理帐户创建SQL Server代理代理帐户。此代理帐户必须使用 允许SQL Server代理以创建作业的帐户的身份运行作业 将或打包为具有所需权限的帐户

此方法用于解密机密并满足密钥要求 用户要求。然而,这种方法的成功可能有限 因为SSIS包用户密钥涉及当前用户和 当前计算机。因此,如果将包移动到另一个 即使作业步骤使用 正确的代理帐户

方法2:将SSIS包ProtectionLevel属性设置为ServerStorage将SSIS包ProtectionLevel属性更改为 服务器存储。此设置将包存储在SQL Server中 数据库,并允许通过SQL Server数据库进行访问控制 角色

方法3:将SSIS包保护级别属性设置为EncryptSensitiveWithPassword更改SSIS包保护级别 属性加密敏感的WithPassword。此设置使用密码 用于加密。然后可以修改SQL Server代理作业步骤 命令行以包含此密码

方法4:使用SSIS包配置文件使用SSIS包配置文件存储敏感信息,然后存储 这些配置文件位于安全文件夹中。然后,您可以更改 ProtectionLevel属性设置为DontSaveSensitive,以便包 未加密,不尝试将机密保存到包中。什么时候 运行SSIS包时,所需信息将从 配置文件。确保配置文件是正确的 如果它们包含敏感信息,则受到充分保护

方法5:为长期解决方案创建包模板,创建使用不同保护级别的包模板 从默认设置。这个问题将来不会发生 包裹

上面的链接将帮助您从SQL代理完成日志记录和其他可能的包失败场景。我怀疑你的用户