请问tidb 7.1.0添加索引卡死,进程也无法杀死,怎么解决呢

tidb版本7.1.0,只能在创建表的时候添加索引,对已有数据的表或者空表都无法添加索引,加索引会卡死,进程一直执行,杀掉也一直处于cancelling状态,请问怎么彻底杀死进程,索引怎么才能创建成功呢

你看看tidb的节点上有/tmp/tidb这个目录吗

有的

这个目录的权限怎么是tidb_zhao?tidb是用tidb_zhao这个账号启动的?

是的是的,用户名就是这个

参考这里,用admin cancel ddl
https://docs.pingcap.com/zh/tidb/v7.1/sql-statement-admin-cancel-ddl/#admin-cancel-ddl

cancelling是在回退,这个要等,如果不想等,可以重启ddl owner 节点

2 个赞

你截图看下, admin show ddl jobs

如果是测试环境就重启 tidb 吧,这是最简单的方法。

tiup cluster restart xxx -R tidb 重启就好了 ,选个维护时间搞

以往论坛碰上的ddl卡住的问题,基本都是这3类。你可以排查一下,前2个重点查。因为第三个问题是分布式执行框架的问题,这个特性在7.1还是实验特性,需要手动开启,如果你没有改这块的设置,应该不太可能是第三个案例的情况。

这个是一直cancelling,两三天了 :joy:我重启节点才恢复,但是还是加不了索引,把SET GLOBAL tidb_ddl_enable_fast_reorg = OFF;这个关了才能创建

:joy: 这个当时我们也遇到了。 感觉大部分的加速功能都是比较依赖硬件的。

1 个赞

这个tmp目录是系统盘,非SSD吧,这样就需要把fast ddl关掉才行,不然会非常慢

你那会的 DDL Owner 情况有保存吗

是的,论坛里发过几个这个参数的引起无法加索引的帖子

换个用户试试

kill -9 强制