博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PG数据库死锁无法insert和update操作
阅读量:4173 次
发布时间:2019-05-26

本文共 662 字,大约阅读时间需要 2 分钟。

目前由于系统升级,数据库系统从mssql2012变成开源的pg11.4。新环境出现数据无法入数据库,操作人员无法修改订单,需要查询死锁的点,早处理,最终还是要找到问题的SQL解决。

1.-- 查询ACTIVITY的状态等信息

select T.PID, T.STATE, T.QUERY, T.WAIT_EVENT_TYPE, T.WAIT_EVENT,
       T.QUERY_START
  from PG_STAT_ACTIVITY T
 where T.DATNAME = 'T_STATION';

上面查询结果中:pid就是ACTIVITY的唯一标识,state就是活动状态,query就是正在执行的sql语句,query——start就是开始执行的时间。

2.-- 查询死锁的ACTIVITY

select T.PID, T.STATE, T.QUERY, T.WAIT_EVENT_TYPE, T.WAIT_EVENT,
       T.QUERY_START
  from PG_STAT_ACTIVITY T
 where T.DATNAME = 'T_STATION'
       and T.WAIT_EVENT_TYPE = 'Lock';

3.将第二条查询语句的pid字段的数字值记录下来,执行下面的查询语句可以解锁:

-- 通过pid解锁对应的ACTIVITY

select PG_CANCEL_BACKEND('6984');

上面的查询语句,执行了pg_cancel_backend()函数,该函数是取消后台操作,回滚未提交事物的用途。

转载地址:http://axbai.baihongyu.com/

你可能感兴趣的文章
实用英文地址书写格式
查看>>
在oracle中通过connect by prior来实现递归查询!
查看>>
百度空间如何才能另存为 mht
查看>>
How to Reset or Change Microsoft Office 2007 Product License Key or Volume License Key (VLK)
查看>>
使用java concurrent调用xmlp api生成pdf
查看>>
Oracle日期计算之INTERVAL
查看>>
Oracle PL/SQL之EXCEPTION
查看>>
Oracle PL/SQL之EXCEPTION -- WHEN OTHERS THEN
查看>>
Oracle PL/SQL之VARCHAR2 QUALIFIER
查看>>
Oracle PL/SQL之处理index不连续的table类型变量
查看>>
Oracle PL/SQL之嵌套表(Nested Table)
查看>>
Oracle PL/SQL之令人不解的提示(nls_date_format)
查看>>
Oracle PL/SQL之GROUP BY ROLLUP
查看>>
Oracle PL/SQL之GROUP BY CUBE
查看>>
蓝桥杯2018省赛 - A3 乘积尾零
查看>>
蓝桥杯2018省赛 - A4 第几个幸运数
查看>>
命令窗口中javac(即javac.exe)不可用的原因
查看>>
如何完全卸载VS2010
查看>>
【算法概论】分治算法:计算数组中的逆序对
查看>>
【算法概论】分治算法:查找中位数
查看>>