【概述】 场景 + 问题概述
我正在使用DM工具从mysql同步数据到TiDB,但是发现有个任务pause,显示报错:Error 8004: Transaction is too large, size: 104857740
我上游mysql设置的max_allowed_packet是16MB,理论上不会导致下游出现100MB的大事务,请问这种问题该如何排查呢?
【概述】 场景 + 问题概述
我正在使用DM工具从mysql同步数据到TiDB,但是发现有个任务pause,显示报错:Error 8004: Transaction is too large, size: 104857740
我上游mysql设置的max_allowed_packet是16MB,理论上不会导致下游出现100MB的大事务,请问这种问题该如何排查呢?
performance.txn-total-size-limit tidb改大这个参数,限制事务大小的
其实我是知道如何修改tidb事务配置的,但是我不明白的事情是,上游已经限制过16MB,为何到了下游还会放大成超过100MB?
max_allowed_packet限制的是一个数据包的最大大小,而不是单个事务的最大大小
你好,max_allowed_packet是我这边误解了。
但是我把DM报错大事务的binlog拉下来,用该命令查询后,发现并无大事务。
grep “GTID$(printf ‘\t’)last_committed” -B 1
| grep -E ‘^# at’ | awk ‘{print $3}’
| awk ‘NR==1 {tmp=$1} NR>1 {print ($1-tmp);tmp=$1}’
| sort -n -r | head -n 10
917526
916286
915630
915161
913321
912913
912785
911841
911345
910905
而且还有个现象,DM报出该错误后,过一会又开始继续恢复同步了(并非重试,而是真正的偏移量在推进)
目前将DM5.4降级到5.3似乎不会报出大事务的错误。
具体我再观察下
很奇怪,可以把当时dm-worker的日志,dm的版本和配置文件发下么
该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。