如何修复SQL Server和MySql之间的数据传输过程中发生的错误?

时间:2008-12-13 00:19:33

标签: mysql sql-server-2005 ssis

我有一个连接到mysql服务器的SSIS包,试图从不同的表中提取数据并将这些行插入到SQL Server 2005数据库中。

我注意到的一个问题是,在任何给定的时间它运行,无论它处于什么步骤,它几乎总是无法将mysql的总记录带入sql server。

没有抛出任何错误。

一天早上,它将拥有所有11M记录,并在下一次运行时记录3K到17K记录。

有人注意到这样的事吗?

2 个答案:

答案 0 :(得分:2)

我从两个独立的MySQL数据库导入数据 - 一个在Internet上,一个在内部。我从未遇到过这类问题。您能描述一下如何设置与MySQL数据库的连接吗?我使用MySQL网站上提供的ODBC驱动程序,并使用引用ODBC连接的数据流中的ADO.NET数据源进行连接。

至少可以阻止自己加载不完整数据的一种方法是加载新记录。如果源表具有ID并且插入后记录永远不会更改,则可以通过首先检查数据库来提供最大ID。

防止加载不完整数据的另一种可能方法是将MySQL数据库加载到目标服务器上的临时表中,然后只加载尚未加载的记录。

另一种方法是将数据加载到临时表中,验证记录是否大于某个最小阈值,例如目标表的行数或每天预期的最小事务数,然后只提交此验证后更改。如果行不足,则在程序包上引发错误并发送通知电子邮件。引发错误的好处是您可以将SQL Server代理作业设置为重试该步骤一定次数,以查看是否可以解决问题。

希望这些提示能够提供帮助,即使它们没有直接解决问题的根本原因。

答案 1 :(得分:0)

我只试过MySQL - > SQL Server通过SSIS一次,但我发现的错误与MySQL日期时间有关,而不是转换为SQL Server日期时间。我原以为这会打破整个数据流,但根据你的配置你可以设置它纯粹是为了忽略坏行?