TIDB版本:6.5.3
操作路径:
1.create 新建表
2. drop table
问题:
发现这张空表执行了2天都没执行完。
admin show ddl jobs中一直处于running状态,
尝试使用 admin cancel ddl jobs 停止该DDL,出现以下提示
使用TABLE_ID在INFORMATION_SCHEMA.tables中查询,
tidb_table_id=‘621893’ 没记录。
有没有办法强制删除这条DDL ?
TIDB版本:6.5.3
操作路径:
1.create 新建表
2. drop table
问题:
发现这张空表执行了2天都没执行完。
admin show ddl jobs中一直处于running状态,
尝试使用 admin cancel ddl jobs 停止该DDL,出现以下提示
使用TABLE_ID在INFORMATION_SCHEMA.tables中查询,
tidb_table_id=‘621893’ 没记录。
有没有办法强制删除这条DDL ?
mysql.tidb_mdl_view 先看下这个里面有什么内容
这个表里面没有任何记录信息, 我在想是不是delete的时候出问题 导致tables里面id记录被更新或者删除,引起DDL卡住。
日志中有发现
[2023/08/18 14:59:37.666 +08:00] [INFO] [syncer.go:333] [“[ddl] syncer check all versions, someone is not synced”] [info=“instance ip 10.10.10.86, port 4000, id c6ea2820-553e-4ba8-b3bb-693bd3695390”] [“ddl id”=622065] [ver=500071]
[2023/08/18 14:59:37.666 +08:00] [INFO] [syncer.go:333] [“[ddl] syncer check all versions, someone is not synced”] [info=“instance ip 10.10.10.247, port 4000, id e0f1f71b-20dc-44c3-93e8-92858dab03ac”] [“ddl id”=622065] [ver=500071]
[2023/08/18 14:59:37.666 +08:00] [INFO] [syncer.go:333] [“[ddl] syncer check all versions, someone is not synced”] [info=“instance ip 10.10.10.74, port 4000, id e8790a44-c60f-4bce-aaae-c9934bb82b17”] [“ddl id”=622065] [ver=500071]
官方的排查:
通过 curl http://{TiDBIP}:10080/info/all
获取当前集群的 Owner
通过监控 DDL > DDL META OPM 查看某个时间段的 Owner
如果 Owner 不存在,尝试手动触发 Owner 选举:curl -X POST http://{TiDBIP}:10080/ddl/owner/resign
。
我估计得需要重启所有tidb server才行
得重启tidb-server才行
所有的tidb都重启过了…还是卡在这.
我感觉不是慢的原因 这表是个空表, 会不会是table_id 找不到了?
tidb server 重启是轮流的还是都停掉后再起的
两种试过, 也尝试过 全部关掉 先启动一个tidb-server。没啥效果
https://github.com/pingcap/tidb/issues/44687
github上有个类似的issue,最后一条回答指向了元数据锁。
https://docs.pingcap.com/zh/tidb/stable/metadata-lock#元数据锁的可观测性
按照文档中处理ddl阻塞的方式,操作一下试试看?可能之前kill掉的并不是造成现在阻塞的session。
如果还不行就把元数据锁的这个特性关闭算了。
在 v6.5.0 及之后的版本中,TiDB 默认开启元数据锁特性。当集群从 v6.5.0 之前的版本升级到 v6.5.0 及之后的版本时,TiDB 会自动开启元数据锁功能。如果需要关闭元数据锁,你可以将系统变量 [
tidb_enable_metadata_lock](https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_enable_metadata_lock-%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5) 设置为
OFF 。
没好办法,只能关tidb-server
关闭 TIDB-server 我也关过了…对我这情况好像不好使.
SELECT * FROM mysql.tidb_mdl_view 检查是否有记录
ddl还卡着呢?
最后怎么恢复的,我们现在也是这样6.5.1
重启所有tidb组件就行
tiup cluster restart tidb-test -R tidb
我也遇到了这个问题
后面解决了吗?
可以看下:
1 select * from mysql.tidb_mdl_info;
2 ip 10.10.10.74, port 4000 的 tidb 日志
最后咋解决的
到底恢复了没
后面恢复了没