DTS任务卡住问题处理

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介:
  • 1.问题描述

在使用公共云DTS做云下IDC数据迁移到云上DRDS过程中数据全量初始化的过程中任务卡住数据迁移无法正常完成;
重启多次都会卡住,影响正式迁移的进度和时间安排;

  • 2.问题分析

经过确认一直都是如下图的表出现卡住迁移已经完成大部分的动作,但是任务卡住无法继续;
image
反馈阿里同学排查是怀疑max_statement_time参数设置太短,碰到写大字段超时报错,dts侧可以通过暂时降低batch提交的大小绕过;
针对max_statement_time在drds层面控制台没有该参数的设置,从命令行查询有该参数但是设置为0,代表不限制;
image
image
从drds下挂的rds查看该参数如下图所示,同样没有限制;
image
下图是DTS的log反馈报错的情况是drds侧的报错;
image
所以需要排查一下当时什么原因导致DTS在写数据的时候连接中断了。很可能是DRDS写RDS时某个参数超时了,导致连接中断,然后DRDS中断了与DTS的连接;
经过排查drds下的log日志发现有一些max packet limit的报错
image
检查云上drds的max_allowed_packet参数设置是16M的大小;
image
对应挂载的rds该参数设置是1024M;
image
因此怀疑是drds层面该参数设置过小,但又存在大字段,batch提交超过16M导致DTS内部报错,导致任务卡住无法继续;
然后就查询了卡住表的结构和一部分数据内容;
确实存在有longblob,text等大字段,存在有大的日志内容在longblob字段当中,和客户确认这是一张日志表主要存在关键业务的报文日志,主要是报文的大小无法确定,每个报文大小跟具体的实际业务有关系,所以确实可能会存在大报文的情况存在导致超过max_allowed_packet的设置大小;
image
image
如下是从rds中查到的表的一条记录的平均大小,大概在3-4k左右;
image

  • 3.问题解决

通过调整max_allowed_packet参数到最大2G以后,重启dts任务以后问题解决;
image
image
通过和阿里DTS同学交流确定,出错的时候其实大部分数据已经迁完了,应该有不多的较长的行导致写失败了,从平均行长看3、4K一行,DTS这边一批次写入一般会256~1024条,对应max_allowed_packet 16MB应该没有问题,但这张有问题的表可能有为数不多的几条数据,每条会有接近16MB的样子,这就很可能一个写入批次超过16MB的阈值导致写入失败;
并且结合和客户应用同学确定会存在有大报文的情况出现,证明这个解释也很合理;

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
7月前
|
缓存 关系型数据库 数据库
如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败了
【2月更文挑战第29天】如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败了
57 3
|
7月前
|
缓存
如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败
如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败
66 1
|
DataWorks 关系型数据库 MySQL
DataWorks可以通过数据同步任务(DTS)实现OceanBase和其他数据库之间的实时数据同步
DataWorks可以通过数据同步任务(DTS)实现OceanBase和其他数据库之间的实时数据同步
251 2
|
DataWorks 关系型数据库 MySQL
可以使用DataWorks的数据同步任务(DTS)来实现实时同步
可以使用DataWorks的数据同步任务(DTS)来实现实时同步
496 2
|
关系型数据库 MySQL
DTS任务为什么一直处于"修改同步对象中"
DTS任务为什么一直处于"修改同步对象中"
|
SQL 关系型数据库 分布式数据库
|
数据库
DTS开发记录(9)-- 数据迁移任务 DataTask
在DTS开发记录(1)--系统总体结构 一文中,我们已经看到,一次数据传递任务基于一个连接对和一个数据映射进行。但是之前,我们并没有提到“数据迁移任务”这个元素。随着设计的演化,我们发现一个数据任务已经不再仅仅是一个连接对加上一个数据映射了。
1046 0
|
7月前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
|
7月前
|
SQL 分布式计算 监控
在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
【2月更文挑战第32天】在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
77 6
|
28天前
|
弹性计算 安全 容灾
阿里云DTS踩坑经验分享系列|使用VPC数据通道解决网络冲突问题
阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。本文介绍如何使用VPC数据通道解决网络冲突问题。
88 0