重启所有TiDB没用, 我这边是停止所有TiDB, 等一分钟启动一个TiDB节点, 然后就恢复了。 最后启动所有TiDB节点
能找到这个sql的id,然后杀掉嘛
没解决, 这ddl 现在还在。
如果是 MDL 元数据锁的锅,可以在 ddl owner 节点的日志中搜索下 old running transaction block DDL 关键字看看,类似于下面的日志:
[2023/07/13 10:12:17.815 +08:00] [INFO] [session.go:4323] ["old running transaction block DDL"] ["table ID"=59840] [jobID=59901] ["connection ID"=3371080660529549211] ["elapsed time"=6h12m17.659493018s]
1 个赞
找个维护时间tiup cluster restart xxxx -R tidb
tidb 的日志都还在吗?
这个和Oracle kill后台进程差不多,不知道tidb是否支持,重启大法肯定好使。
没有找到对应的日志
这个都尝试过了。
目前情况:
在INFORMATION_SCHEMA.TIKV_REGION_STATUS表中已经找不到
table_id 为 621893的记录了
是不是因为没有记录了 导致这个ddl卡住?
有没有办法主动创建这个table_id?
把这段时间(开始执行到现在)的tidb.log都上传下,让研发看看
把所有tidb 节点的日志都收集下,然后打包传上来…
可以用tiup diag 收集
tiup diag 是怎么使用 我日志有点大
hello, 日志能弄出来吗?
日志太大了 先传当时前后2小时的日志
已经和题主沟通,通过用 ETCD 修改里面的 key 绕过去。
原因是往 ETCD 里写 MDL 时,由于网络之类的原因,违反了线性一致性。
比如说,往 ETCD 里写入 500070,结果超时,然后重试成功。
随后往 ETCD 里写入 500071。
结果最开始超时的 500070 又成功了,把预期的 500071 覆盖。
3 个赞
厉害 这也行
通过用 ETCD 修改里面的 key 绕过去 想问下这个是怎么实现的?