执行 SSIS 包以将数据从 SQL 2012 服务器迁移到 MySql 时出错

Error while executing SSIS package to data migration from SQL 2012 server to MySql

我正在尝试使用 SSIS 程序包将数据从 MS Sql 服务器 2012 迁移到 MySql 服务器 (5.1)

这是我的数据流任务,它使用来自 SQL 服务器的查询检索数据并泵送至 Mysql(其中一列包含 blob 类型)

和属性

尝试使用 ODBC 连接管理器和 ADO.net(odbc 驱动程序)管理器作为目标。

以下是我遇到的错误,在将一些记录插入 MySql 后失败,我无法找出原因/解决方案:

Error: 0xC020844B at DFT Finding Attachment, ADO NET Destination 2: An exception has occurred during data insertion, the message returned from the provider is: The connection has been disabled.

Error: 0xC0047022 at DFT Finding Attachment, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "ADO NET Destination" (2) failed with error code 0xC020844B while processing input "ADO NET Destination Input" (9). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.

我建议在源和目标之间的数据流中添加数据转换任务,并确保在插入 MySQL table 之前正确转换所有数据类型。

我经常遇到SSIS默认不能转换数据类型的问题。

问题出在 MySql max_allowed_packet,它设置为 1MB,因此在插入大 blob 时失败,所以答案是将它创建为 64MB

set global max_allowed_packet=64M