1. 首页
  2. 编程语言
  3. 其他
  4. pgsql锁表后kill进程的操作

pgsql锁表后kill进程的操作

上传者: 2021-08-18 01:37:45上传 PDF文件 94.89 KB 热度 7次

查询系统中的进程如果怀疑哪张表被锁了,可以执行如下sql:然后将拿到的oid 放入如下sql执行:搞定!此sql是kill作用前言在一次系统迭代后用户投诉说无法成功登陆系统,经过测试重现和日志定位,最后发现是由于用户在ui上进行了某些操作后,触发了堆栈溢出异常,导致数据库里的用户登陆信息表的数据被锁住,无法释放。这个表里存放的是用户的session信息。虽然后来解决了问题,但是数据库里这个用户登录信息表里被lock住的数据始终无法释放,这导致用户永远无法登陆成功,需要手动跑SQL把锁去掉才行。可以用如下SQL查出来:这里查的是排它锁,也可以精确到行排它锁或者共享锁之类的。这里有几个重要的column:a.pid是进程id,b.relname是表名、约束名或者索引名,a.mode是锁类型。

用户评论