当前位置: 首页 > article >正文

Postgre SQL pgsql解决表死锁解锁

问题描述

对表进行范围更新,导致表锁死,业务系统瘫痪

解决办法

 --查询是否锁表了
select oid from pg_class where relname='可能锁表了的表'
--pid 是进程
select pid from pg_locks where relation='上面查出的oid'
--如果查询到了结果,表示该表被锁 则需要释放锁定
select pg_cancel_backend(上面查到的pid)

--批量杀死pid进程,把执行结果复制下来,一起执行即可
select 'select pg_cancel_backend( '''|| 填pid ||''');' pid from pg_locks where relation='填oid'

大招

如果以上方法进程杀不掉,用以下命令可解决


select pg_terminate_backend([pid]);

函数区别

pg_cancel_backend()

只能关闭当前用户下的后台进程,向后台发送SIGINT信号,用于关闭事务,此时session还在,并且事务回滚.

pg_terminate_backend()

需要superuser权限,可以关闭所有的后台进程,向后台发送SIGTERM信号,用于关闭事务,此时session也会被关闭,并且事务回滚

注意

pg_terminate_backend()会把session也关闭,此时sessionId会失效,可能会导致系统账号退出登录,需要清除掉浏览器的缓存cookie

参考

https://www.cnblogs.com/yulinlewis/p/11863750.html


http://www.kler.cn/a/7753.html

相关文章:

  • 基于汇编语言的贪吃蛇程序
  • 谷歌Gemini发布iOS版App,live语音聊天免费用!
  • c#————委托Action使用例子
  • 【WPF】Prism学习(二)
  • 力扣 LeetCode 239. 滑动窗口最大值(Day5:栈与队列)
  • 轮转数组
  • 【java进阶09:集合】泛型、增强for、Collections集合工具类
  • 百度墨卡托坐标转化笔记
  • pyinstaller打包exe文件
  • 网络编程DAY 1
  • 护网面试题5.0
  • 4.整数类型
  • 五、页面切割技术,实现工作台
  • toArray转换 java.lang.ClassCastException
  • Kafka 3.4.0 kraft 集群搭建
  • 【机器学习】主成分分析(PCA)算法及Matlab实现
  • 数据结构.双链表的各种操作
  • 用“劫富济贫”的思想来进行特征空间的数据增强
  • day002-数组-有序数组的平方、长度最小的子数组、螺旋矩阵II
  • (数字图像处理MATLAB+Python)第四章图像正交变换-第二节:离散余弦变换和K-L变换
  • CTFHub | 双写后缀
  • 使用Python、Contours绘制等高线
  • 软件安全测试有哪些测试手段?软件测试报告收费贵吗?
  • 增程汽车大厂上纯电,理想能行吗?
  • 实时聊天如何改变您的在线商店
  • 【文心一言】内测版 沉浸式深度体验——不间断 提问问题!它的表现如何?