问题现象
show processlist 时,有业务一直在checking permissions
解决方法:
1.查看该SQL 的执行节点IP 和对应的ID
gbase> show processlist;
|269 | root | localhost | testdb | Query | 16 | checking permissions | alter
table t1 add column name varchar(100) |
上面这一行的第一个字段【269】就是SQL 的id,第三个字段【localhost】就是
对应的ip,这里是本机,如果是其他节点会显示对应的ip
2.通过gcadmin showlock 查看对应id 的集群锁情况:
$gcadmin showlock | grep 269
或许会得到多组结果,找出第五个字段为【FALSE】的哪一行。如:
| vc00001.testdb.t1.meta_lock
|10.0.2.101|269(LWP:21694)|20211222145941|FALSE | S |
由上面的语句可以判断出为vc00001.testdb.t1.meta_lock 是这个锁
3.查看锁的持有者
继续通过gcadmin showlock 查看锁持有者的情况
$ gcadmin showlock | grep vc00001.testdb.t1.meta_lock
| vc00001.testdb.t1.meta_lock
|10.0.2.101|342(LWP:15618)|20211222145916| TRUE | E |
由上面语句可以判断出vc00001.testdb.t1.meta_lock 这个锁的持有者为