使用SSIS从oracle抽取数据到SQL Server 2008时问道的报错

0
这个包的抽取是每天凌晨2点执行的,之前一直没有问题,直到昨天报了一个错,报错文本如下:

日期        2015/12/21 2:00:00
日志        作业历史记录 (wxph_ods)

步骤 ID        1
服务器        CDR-DATABASE
作业名称        wxph_ods
步骤名称        wxph_ods
持续时间        00:06:11
SQL 严重性        0
SQL 消息 ID        0
已通过电子邮件通知的操作员        
已通过网络发送通知的操作员        
已通过寻呼通知的操作员        
重试次数        0

消息
已以用户 CDR-DATABASE\Administrator 的身份执行。
Microsoft (R) SQL Server 执行包实用工具  Version 10.50.1600.1 for 32-bit  版权所有 (C) Microsoft Corporation 2010。保留所有权利。    
开始时间:  2:00:00  错误: 2015-12-21 02:06:11.07     代码: 0xC0202009     
源: 数据流任务 OLE DB 源 [1]     说明: SSIS 错误代码 DTS_E_OLEDBERROR。
出现 OLE DB 错误。错误代码: 0x80004005。  错误结束  错误: 2015-12-21 02:06:11.09     代码: 0xC0047038     
源: 数据流任务 SSIS.Pipeline     说明: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“OLE DB 源”(1) 的 PrimeOutput 方法返回了错误代码 0xC0202009。
管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。
可能在此之前已经发出错误消息,提供了有关失败的详细信息。  
错误结束  DTExec: 已返回包执行 DTSER_FAILURE (1)。  开始时间:  2:00:00  完成时间: 2:06:11  占用时间:  370.937 秒.  包执行失败。.  该步骤失败。


昨天发现出错后,没有做任何改动直接开始重新抽取数据,没有报错。
初步认为是数据类型的问题,根据数据抽取日志表定位到出问题的表,查看oracle和MS SQL两个库里的表的数据类型,发现完全一致,不能定位错误出现原因,求教
已邀请:
2

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2015-12-24 回答

如果是一次性的,不是经常出现的问题就暂时不要紧。

如果是经常性的频繁每次都发生的,那就一定是有问题的,跟数据源的关系比较大。提示也给出了 数据流任务 OLE DB 源 [1]   这个组件有问题,从数据源数据传输过来的时候读取异常了,有可能真的是数据的问题,也有可能是传输时候解析数据丢数据或者其它未知原因。

重新运行就OK的,说明程序逻辑数据本身没有什么问题。

通常情况下,JOB 执行的时候我们会配置 3次尝试的,以防偶尔因为网络或者其它原因造成失败。
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-12-22 回答

从你贴的信息来看,还有别的你没贴出来
0

天善_小龙 2015-12-29 回答

我最近也一直遇到这个问题,从Oracle抽取数据送到SQL Server. 排查下来,网络问题可能性比较大。
 
解决方案:如果失败了,重试3次,间隔半小时。 
 
已通过电子邮件通知的操作员    
已通过网络发送通知的操作员    
已通过寻呼通知的操作员    
重试次数        3

消息
已以用户 **** 的身份执行。 Microsoft (R) SQL Server 执行包实用工具  版本 11.0.2100.60 (32 位)  版权所有(C) Microsoft Corporation。保留所有权利。    开始时间:  0:48:22  错误: 2015-12-29 00:56:42.85     代码: 0x000002C0     源: **** [2]     说明: 遇到了 OCI 错误。 ORA-03113: 通信通道的文件结尾  进程 ID: 4748  会话 ID: 198 序列号: 3456  错误结束  错误: 2015-12-29 00:56:42.91     代码: 0x000002C0     源: **** [2]     说明: 遇到了 OCI 错误。 ORA-03113: 通信通道的文件结尾  进程 ID: 4748  会话 ID: 198 序列号: 3456  错误结束  错误: 2015-12-29 00:56:43.18     代码: 0xC0047038     源: **** SSIS.Pipeline     说明: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。**** 的 PrimeOutput 方法返回了错误代码 0x80004005。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。  错误结束  DTExec: 已返回包执行 DTSER_FAILURE (1)。  开始时间:  0:48:22  完成时间: 0:56:43  占用时间:  502.672 秒.  包执行失败。.  注意: 该步骤重试了请求的次数(3),但没有成功。.  该步骤失败。
 
 
 

要回复问题请先登录注册