Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

表里有longtext字段,全量同步数据到tidb时报错 #246

Open
selectliu opened this issue Dec 9, 2019 · 6 comments
Open

表里有longtext字段,全量同步数据到tidb时报错 #246

selectliu opened this issue Dec 9, 2019 · 6 comments

Comments

@selectliu
Copy link

由于历史原因,mysql的表里有longtext字段,字段里面存放了大量的数据,类似如下图,这个字段数据大概有30k

图片

同步的时候报错了,报错如下图,只有这一个报错信息,打印出来的是同步的数据,看不出来具体报错信息,前面的日志都是正常的
图片
图片

@Ryan-Git
Copy link
Collaborator

再找找具体的报错?这样看不出什么。longtext 本身是支持的。
实在不行改一下打日志的代码

@selectliu
Copy link
Author

没有具体的报错。前面的日志都是正常的日志,就是这个字段的内容太多了,字段内容超过30k 基本就会出问题。longtext字段里面如果内容较少也不会出问题。

@Ryan-Git
Copy link
Collaborator

Ryan-Git commented Dec 10, 2019

报错不在前面,就是很长的那条里面,不确定有没有被你们的 ELK 截断。把报错那行截全了看看?

或者人工/写脚本执行一个同样的 sql 看看报错?这种基本上是碰到 tidb 的什么限制了。

改代码的话在这里

@selectliu
Copy link
Author

图片
是截断了,到后台截了最后几行的报错信息,前面全是数据,数据太大了,截不全。

人工脚本到tidb执行没有问题的。
gravity 同步的时候,不停的pause resume尝试,这些报错的数据有会同步过去。然后到下一条超大的数据,又不可以了

@Ryan-Git
Copy link
Collaborator

方便改代码吗?把 pkg/sql_execution_engine/internal_txn_tagger.go:51 从

return errors.Annotatef(err, "query: %v, args: %v", query, args)

改成

return errors.Annotatef(err, "query: %v", query)

@xialuo1990
Copy link

@selectliu 有复现?
是否达到TiDB如下限制:
单个事务包含的SQL语句不超过5000条
操作的单条记录不超过 6MB
事务操作的总keys不超过 30w
事务操作的所有记录总大小不超过 100MB
另外看一下,如果将下游的batch-size修改小一点,是否可以正常worker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants