大表的SQL Server DMS全负载迁移失败

时间:2019-07-29 11:45:41

标签: sql-server amazon-web-services odbc dms

我们正尝试将数据从本地SQL Server迁移到RDS上的SQL Server。我们正在使用AWS DMS Full-Load实现此目的。我们正在使用 r4.2xlarge 实例。大约有200张桌子。当我们开始迁移任务时,较小的表将被加载,但是在尝试为大型表加载数十万行后失败。我们得到的错误是:

  

2019-07-29T10:44:34:986583 [SOURCE_UNLOAD] D:RetCode:SQL_ERROR   SqlState:08S01 NativeError:-1消息:[Microsoft] [ODBC驱动程序13   for SQL Server] SSL提供程序:[错误:80001044:lib(128):func(1):内部   错误:意外错误] [1022502](ar_odbc_stmt.c:3155)

因此,我们只用一个大表(13+百万行,大小为7GB)重新创建了任务,而不是200个表。这也因相同的错误而失败。同样,任务并非总是在相同的行数下失败-加载的最小行数为30万行,最大行数为500万。

要查看DMS或本地服务器是否存在问题,我们将所有数据复制到使用SSIS运行SQL Server的EC2实例,其中ODBC源指向本地服务器。然后,我们将DMS Full-Load从EC2实例运行到RDS-可行!

因此,问题似乎出在本地服务器及其与DMS的连接上。 AWS支持团队建议改用Simba ODBC驱动程序(在Extra Connection Attributes中使用odbcDriverVendor = Simba),但是在这种情况下,测试连接本身将失败。

  • 从本地迁移失败的潜在原因可能是什么?由于EC2到RDS可以正常工作,因此我认为这是网络问题。是否可以更改任何设置以使网络连接更具弹性(考虑使用相同的ODBC驱动程序的SSIS)
  • Simba ODBC驱动程序也不适用于EC2实例。支持团队建议使用SSL,但我们已经这样做了。有人知道为什么会这样吗?

其他信息

  • 源本地和目标RDS都使用SQL Server Standard。
  • DMS实例为r4.2xlarge。我们甚至没有使用10%的CPU, 内存限制。
  • 在源和目标端点上启用了SSL。

更新19年7月30日: 我在源终结点上禁用了SSL模式(SslMode = None),满负荷工作了!我现在可以加载整个行集。但是为什么SslMode = Require会引起问题?仅在尝试加载大表时才会出现此问题。对于较小的表,可以使用SslMode。 SslMode在大型表上也可用于数十万行。那么,有没有与ODBC SSL Provider关联的size属性?

0 个答案:

没有答案