怎么在postgresql中排查表死锁的问题(gr,postgresql,st,开发技术)

时间:2024-05-05 14:40:05 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    %E6%80%8E%E4%B9%88%E5%9C%A8postgresql%E4%B8%AD%E6%8E%92%E6%9F%A5%E8%A1%A8%E6%AD%BB%E9%94%81%E7%9A%84%E9%97%AE%E9%A2%98

1.查询激活的执行中的sql,查看有哪些更新update的sql。

2. 查询表中存在的锁

3. 杀掉死锁进程

锁模式

补充:Postgresql死锁的处理

背景:

对表进行所有操作都卡住,原因可能是更新表时导致这个表死锁了,开始进行排查

pg版本10.2

执行后发现select和delete表时正常执行,但truncate和drop表时会一直运行,也不报错。

“drop table” 和 “truncate table” 需要申请排它锁"ACCESS EXCLUSIVE", 执行这个命令卡住时,说明此时这张表上还有操作正在进行,比如查询等,

那么只有等待这个查询操作完成,“drop table” 或"truncate table"或者增加字段的SQL才能获取这张表上的 "ACCESS EXCLUSIVE"锁,操作才能进行下去。

问题解决!!!

坑:一开始不知道pg_cancel_backend(‘死锁那条数据的pid值');##只能杀死select 语句, 对其他语句不生效,杀了进程查询发现还存在,反复杀反复存在,换了pg_terminate_backend(‘进程ID')问题就解决了。

本文:怎么在postgresql中排查表死锁的问题的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:react组件树指的是什么下一篇:

2 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18