DTS任务卡住问题处理

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
  • 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-x 弹性伸缩实验
本实验主要介绍如何对PolarDB-X进行手动收缩扩容,了解PolarDB-X 中各个节点的含义,以及如何对不同配置的PolarDB-x 进行压测。
目录
相关文章
|
1月前
|
缓存 关系型数据库 数据库
如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败了
【2月更文挑战第29天】如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败了
15 3
|
4月前
|
缓存
如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败
如果数据传输服务DTS(Data Transmission Service)的数据订阅任务突然失败
31 1
|
关系型数据库 MySQL
DTS任务为什么一直处于"修改同步对象中"
DTS任务为什么一直处于"修改同步对象中"
|
SQL 关系型数据库 分布式数据库
|
数据库
DTS开发记录(9)-- 数据迁移任务 DataTask
在DTS开发记录(1)--系统总体结构 一文中,我们已经看到,一次数据传递任务基于一个连接对和一个数据映射进行。但是之前,我们并没有提到“数据迁移任务”这个元素。随着设计的演化,我们发现一个数据任务已经不再仅仅是一个连接对加上一个数据映射了。
1008 0
|
1月前
|
SQL 分布式计算 监控
在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
【2月更文挑战第32天】在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
17 6
|
1月前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
|
3月前
DTS数据传输延迟可能有多种原因
【1月更文挑战第16天】【1月更文挑战第79篇】DTS数据传输延迟可能有多种原因
54 2
|
1月前
|
关系型数据库 MySQL OLAP
数据传输DTS写入问题之无法获取数据如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
1月前
|
存储 Java 关系型数据库
数据传输DTS数据问题之数据写入异常如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
数据传输DTS数据问题之数据写入异常如何解决