【TiDB 使用环境】生产环境 /测试环境
【TiDB 版本】8.5
【部署方式】机器部署
【操作系统/CPU 架构/芯片详情】Rocky Linux
【机器部署详情】16C * 164GB
【集群数据量】1
【集群节点数】3
【问题复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】我有一张A表,它有10多万数据,该表对外提供数据查询能力,执行rename table A TO A1的时候,偶尔卡住几十分钟。我想看卡住的原因,比如是被什么SQL卡住了等。找了文档几个关于锁的表都没有我想要的数据呈现
你这个像是有表锁,但是只对外查询不应该有锁啊
在对应的tidb节点上找找日志,看看有没有报错
被阻塞了
DDL 操作
需要修改 InfoSchema
需要等所有“旧 schema 版本的事务”结束
select *
from information_schema.cluster_tidb_trx
order by start_time;
就是想看被什么阻塞了
可以看下mysql.tidb_mdl_view表
这里面看到的当前被阻塞的DDL,看不到DDL是被什么阻塞的
select * from mysql.tidb_mdl_view tmv;
被卡住的时候,查一下是不是有元数据锁。有的话,kill掉就好了。
tidb_mdl_view里面的session_id就是持有锁的id
看下是不是MDL 锁
大概率是dml有长事务,查下mysql.tidb_mdl_view
是不是 表 A 正在被 SELECT/UPDATE/DELETE ?
大概率是锁的问题
查询一下楼上说的视图,感觉大概率是表锁的问题
看上去是锁等待了啊,有更详细的日志信息吗