作者:冒飞 爱可生 dble 项目测试组成员,负责 dble 相关测试工作,拥有多年数据库中间件测试经验,擅长故障排查及性能调优。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 思
作者:冒飞 爱可生 dble 项目测试组成员,负责 dble 相关测试工作,拥有多年数据库中间件测试经验,擅长故障排查及性能调优。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
当我们用 dble 执行一个 ddl hang 住时,我们该如何下手,如何找到这条 ddl hang 住的原因?是我们自己的操作导致还是踩中了 dble 的 bug ?
下面我们从一个简单的场景着手来分析这个问题:
场景:对 shanging_4_t1 这张表执行 alter,结果 hang 住了
结果找到这个告警,报错信息跟我们观察到的现象是一致的。
如果日志信息比较多,我们可以简单删选一下。
命令:less dble.log|grep DDL
从上面的信息我们大概可以看出,这个语句要发往 4 个分片,且这条 ddl 在 dble 执行中包括 2 个步骤。
步骤一:测试连接可用性
步骤二:真正下发 ddl
日志中可以很明显的看出,步骤一验证连接都成功完成了,但其中一个节点执行语句的状态一直处于 start。
根据提示出问题的 connection 为 23,可以定位到问题所在的 datanode:dn2。
可以看出该节点上的 ddl 在等待一把锁。分析到这一步,我们大概已经知道该 ddl 执行 hang 住的原因了,是因为其中一个节点上该语句的在等待锁的释放,无法成功返回结果。
当在 dble 上遇到 ddl 执行失败的时候,我们的排查步骤大致为:
--结束END--
本文标题: 分布式 | ddl 失败在 dble 中排查过程
本文链接: https://www.lsjlt.com/news/6334.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0