当使用数据库发生数据倾斜时建议按照以下步骤进行排查:
1.查看是否有大的临时文件产生,sql产生笛卡尔积会产生大量的临时文件。查看每个节点的
du -sh/opt/IP/gnode/tmpdata这个文件的大小
2.若没有大的临时文件那么可以判定为出现节点数据倾斜,先从库开始排查
du -sh * /opt/IP/gnode/userdata/gbase/
找出最大的数据库,一般来讲最大的数据库可能发生数据倾斜
3.进入到大库所在的目录/opt/IP/gnode/userdata/gbase/库名/systablespace
du -sh /opt/IP/gnode/userdata/gbase/库名/sys_tablespace
与正常节点对比下统计的sys_tablespace结果就可以知道具体那张表发生了数据倾斜
若在表不多的情况下可以进入到大库中,按照每张表逐一排查:
排查语句为:
select * from information_schema.CLUSTER_TABLE_SEGMENTS a where table_schema='库名' and table_name='表名';
示例如下:
+--------------+--------------+------------+--------+------------+-----------------+--------------------+--------------+
| TABLE_VC | TABLE_SCHEMA | TABLE_NAME | SUFFIX | HOST | TABLE_DATA_SIZE | TABLE_STORAGE_SIZE | DATA_PERCENT |
+--------------+--------------+------------+--------+------------+-----------------+--------------------+--------------+
| vcname000001 | testdb | t2 | n1 | 10.0.2.102 | 27159648 | 456672843 | 30% |
| vcname000001 | testdb | t2 | n2 | 10.0.2.202 | 30748872 | 506634381 | 40% |
| vcname000001 | testdb | t2 | n3 | 10.0.2.102 | 27156466 | 456849885 | 30% |
+--------------+--------------+------------+--------+------------+-----------------+--------------------+--------------+从上面分析可知t2这个表在n2分片发生倾斜,可以进入到10.0.2.202这个IP进行后续处理。
对于上表的解释:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




