阿里云 DTS同步SQL Server 的101个坑

26 篇文章 0 订阅
3 篇文章 1 订阅

测试同步源库为SQL Server,目标库为SQL Server、MySQL、ADB for MySQL均会遇到以下问题。

其中红色部分为尚无解决方案而影响严重的问题。

序号

问题

影响

解决方案

备注

建议改进项
1DTS隐式转换问题

1. 源库IO吞吐量超过1GB/s、延迟超过1秒
2. 16c CPU使用率超过50%
3. 全量同步速度极慢,超过5天未完成
4. SqlServer 为源的链路均存在此问题

提交工单在后台设置对应参数

9.23 发现并反馈阿里云

10.28 阿里云已发版代码,但仍需后台设置生效

1. 将配置界面提到前台

2. 代码能自动按列类型设置变量类型,不需额外配置

2

进行上述设置后,每次新加入对象仍出现隐式转换问题

大表影响同上每次新加入对象后均需提交工单在后台设置对应参数

1. 链路设置后对能自动对新加入对象生效

2. 其余建议同上

3

DTS有概率突然对源库大表进行全量查询

1. 源库IO吞吐量超过1GB/s、延迟超过1秒

2. 对大表全量同步基本无法进行

1. 联系后台调整切片大小

2. 或者从链路中剔除对应表重新加入

研发反馈表切片超时导致切片失败,出现整表拉取(超时具体原因未定位到)对于生产环境风险很高,建议定位具体原因并修复
4

前台无法取消全量同步中的对象

前台界面可以选择取消,取消后界面会看不到,但实际后台仍在同步提交工单在后台取消阿里云反馈为预期现象建议实现前台取消功能
5

大表改字段类型导致DTS长时间延迟

3000万行表,alter在源库执行7分钟,目标库延迟超过6个小时暂无阿里云反馈DTS暂不支持改字段类型操作

1. 建议增加支持改字段类型操作

2. 解析生成的语句不要单条执行单条提交,尽量缩短目标库延迟 

6

源端表执行大事务会影响其他同源链路

执行上面大表改字段类型操作后,源端相同但并没有同步相关表的链路延迟也超过1000秒暂无阿里云反馈为预期现象
7

新增同步对象会清空原有对象

新增同步对象时清空原有对象,只能重新搭建链路进行同步阿里云控制台bug,已修复
8源库主从切换后延迟问题源库主从切换后延迟持续升高阿里云后台重启dts reader阿里云反馈dts源端ip配置的VIP,源端主动切换后,reader 没办法自动重连,需要后台手动重启下reader建议增加vip切换后reader自动重连功能
9对源库表 增加bit字段 问题dts解析会将源库脚本 bit default(0) not null 改为 bit not null,导致同步报错目前手动在目标库执行创建表脚本,跳过自动同步脚本更新

2022.01.17 源库表增加字段

目前手动在目标库中执行脚本;
10DTS 从源库抽数都使用硬编码参数,未参数化,导致源库执行计划占用内存过大

11DTS界面新旧版本各有部分功能缺失

例如:

  • 旧版本只支持 SQL Server同步至MySQL,新版本支持到其他目标库
  • 新版本不支持MySQL同步至clickhouse,只有旧版本支持
新旧版本结合使用
12DTS界面只显示主任务信息,不能显示子任务信息或者配置子任务
  • 子任务报错时,界面不显示异常
  • 界面不显示子任务同步的对象及进度
  • 全量限速等操作只能针对主任务不能配置子任务
只能提单阿里云后台帮忙查看或设置
  • 主任务:第一次配置的同步对象任务
  • 子任务:后续每一次配置同步的对象称为一个子任务
  • 子任务同步完成后会合并到主任务(但界面依旧不显示子任务信息)
界面应该能看到每个子任务信息,或者在同步中就合并到主任务去
13“同步对象修改记录” 界面一直为空同步对象修改并不会显示在该页面中阿里云反馈需切换到旧版DTS同11,新版DTS功能有缺失
14阿里云后台设置每批同步的表行数不生效目前无法调整每批同步的表行数,均为102400行暂无

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL Server是微软公司开发的关系型数据库管理系统,支持标准SQL查询语言,并提供了丰富的功能来管理和操作数据库。它具有高度稳定性、安全性和可靠性,在企业级应用中被广泛使用。 Python是一种通用的高级编程语言,被广泛应用于数据分析、人工智能、Web开发等领域。Python具有简洁的语法和丰富的第三方库支持,使开发者能够更加高效地处理数据和进行各种数据操作。 DTS(Data Transformation Services)是SQL Server的一个组件,用于将数据从一个地方转移到另一个地方,可以进行数据的提取、转换和加载。通过使用DTS,可以轻松地将数据从SQL Server导入到其他数据库中或者反之。 可以使用Python编写脚本来操作SQL Server数据库。通过PyODBC或pymssql等第三方库,可以连接到SQL Server数据库,并执行SQL查询、插入、更新和删除操作。同时,Python也可以通过Django、Flask等Web框架来开发与SQL Server数据库交互的应用程序。 在使用Python进行数据转换时,可以结合SQL ServerDTS组件来实现数据的提取、转换和加载,例如使用Python的pandas库读取SQL Server中的数据,进行数据清洗和处理,然后再使用DTS将处理后的数据导入到其他数据库中或者反之。 总而言之,SQL Server和Python是两种不同的技术,分别用于数据库管理和编程,但是二者可以相互配合使用,在数据处理和数据库操作上具有很好的兼容性,使得开发者能够更加灵活地处理和管理数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值