tidb节点日志打印Unable to get collator by name, use binCollator instead.

【 TiDB 使用环境】生产\测试环境\ POC
生产环境tidb集群中,某个tidb节点疯狂打印Unable to get collator by name, use binCollator instead.,导致磁盘空间占满

【 TiDB 版本】
v5.2.2

【遇到的问题】
tidb节点上疯狂打印日志,导致磁盘空间被告警,查看tidb日志中如下:

在asktug中找到一帖子与我们情况类似,
帖子地址:tidb突然打印很多日志导致磁盘满

第一个问题是:
但是帖子中tidb版本为v4.0.0,而我们版本是v5.2.2,所以不知道这个是否是bug

另外,在tidb_slow_query.log日志中有对表的analyze,经过检查,发现只对两张表进行analyze,我手工执行报错如下:

表结构如下:

第二个问题是,这个anzlyze报错是因为什么呢?

【复现路径】做过哪些操作出现的问题

【问题现象及影响】

原因:
analyze的信息超长,超过了blob的存储范围,将存储统计信息的表的对应字段改成longblob就行,已知问题,5.3应该改了

解决办法:
show create table mysql.stats_buckets \G

ALTER TABLE mysql.stats_buckets MODIFY upper_bound LONGBLOB NOT NULL;
ALTER TABLE mysql.stats_buckets MODIFY lower_bound LONGBLOB;
ALTER TABLE mysql.stats_histograms MODIFY last_analyze_pos LONGBLOB DEFAULT NULL;

3 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。