DTS迁移多text字段时出现Row size too large的错误

简介:

    本周DTS一个增量迁移任务出现一个很诡异的问题,之所以说诡异是因为DTS已经为该用户的库同步了很长一段时间的增量数据(数据量在15G+),今天突然出现了这个问题:

f76015924054a00d1f0b3e52d966903a3c7dc1b2

    从异常的信息大致可以推测出出错的原因是新插入的一行数据需要存储在数据页的实际数据长度大于一个数据页的长度(8126).所以首先对比了一下源表和目标表的数据结构(可能是两边的表结构不一致导致的),两边的表结构是一致的,但却是定义了许多Text类型的大字段而已

696246e34e89d619e0a0a174d607a6205348b745

    然后查询了两边的innodb_file个配置,源库:

f137a486e7ddffb7827aca5e0282a880b46d807a

     目标库:

a7e12dbe57d7becaac25b153b00f2f20f44e2559

    这样一看出错的原因就一目了然了.简单解释一下,Barracuda对应row_format(dynamic, compress),其中dynamic下text的所有内容都是off-page存放的;Antelope 对应row_format(compact, redundant),其中compact下的text是存786B在row中,超过部分存在off-page.所以要解决问题就必须将innodb_file的给是改成Barracuda与源库一致,当这并不能马上解决问题,因为innodb表的存储格式在创建时已经确定了,那么就只能重建表了.为跟用户确认目标库无业务写入的情况下通过create table * select * ,insert into * select 以及rename在目标库重建了该表,之后就完美解决了.

目录
相关文章
|
2月前
|
NoSQL 安全 容灾
阿里云DTS踩坑经验分享系列|Redis迁移、同步
阿里云数据传输服务DTS在帮助用户迁移Redis数据、同步数据时,在某些复杂场景下会出现报错,或者源库与目标库数据不一致的问题,给用户带来困扰。本文介绍了DTS Redis到Redis迁移、同步过程中的典型问题,以帮助用户更好地使用DTS。
146 2
|
3月前
|
NoSQL MongoDB 数据库
DTS 的惊天挑战:迁移海量 MongoDB 数据时,捍卫数据准确完整的生死之战!
【8月更文挑战第7天】在数字化时代,大数据量的MongoDB迁移至关重要。DTS(数据传输服务)通过全面的数据评估、可靠的传输机制(如事务保证一致性)、异常处理(如回滚或重试),以及迁移后的数据校验来确保数据准确无损。DTS还处理数据转换与映射,即使面对不同数据库结构也能保持数据完整性,为企业提供可靠的数据迁移解决方案。
60 2
|
4月前
|
关系型数据库 数据库 RDS
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
145 0
|
4月前
|
SQL 负载均衡 安全
阿里云DTS踩坑经验分享系列|全量迁移加速方法指南
阿里云数据传输服务DTS是一个便捷、高效的数据迁移和数据同步服务。一般而言,一个完整的DTS数据迁移任务主要包括预检查、结构迁移,全量迁移,增量迁移等阶段,其中全量迁移会将源数据库的存量数据全部迁移到目标数据库。面对各种各样的用户场景, 本文将重点介绍如何使用阿里云DTS实现全量数据迁移加速,以缩短迁移时间,确保数据迁移的效率和稳定性。
485 0
|
5月前
|
存储 数据采集 NoSQL
DTS在迁移大数据量的MongoDB数据库时如何保证数据的准确性和完整性?
【6月更文挑战第4天】DTS在迁移大数据量的MongoDB数据库时如何保证数据的准确性和完整性?
137 1
|
6月前
|
关系型数据库 MySQL 数据库
使用阿里云的数据传输服务DTS(Data Transmission Service)进行MySQL 5.6到MySQL 8.0的迁移
【2月更文挑战第29天】使用阿里云的数据传输服务DTS(Data Transmission Service)进行MySQL 5.6到MySQL 8.0的迁移
320 2
|
6月前
|
监控 数据处理 数据库
数据传输DTS迁移问题之总数与已完成条数不一致如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
6月前
|
NoSQL 数据库连接 数据处理
数据传输DTS迁移问题之全量加增量发到目标库如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
6月前
|
关系型数据库 数据库
dts在数据库迁移过程中,当出现违反引用约束的问题
dts在数据库迁移过程中,当出现违反引用约束的问题
183 2
|
6月前
|
存储 关系型数据库 MySQL
当前的DTS已经能够支持从低版本迁移至高版本的8.0
当前的DTS已经能够支持从低版本迁移至高版本的8.0
75 1